【问题标题】:Create Sample Data from Class in Blend throws "Object reference not set to an instance of an object "从 Blend 中的类创建示例数据抛出“对象引用未设置为对象的实例”
【发布时间】:2011-06-26 20:53:13
【问题描述】:

我正在尝试从 Expression Blend 中的 ViewModel 类创建一些示例数据。 然而,Expression Blend 停止并说“对象引用未设置为对象的实例”。就个人而言,我不明白这个异常来自哪里。

有人知道为什么会这样吗?

这是我的 UsersListViewModel:

[Export]
public class UserListViewModel : ViewModelBase
{
    [ImportingConstructor]
    public UserListViewModel(IUserListView view)
        : base(view)
    {

    }

    private ObservableCollection<UserItem> _userList;

    public ObservableCollection<UserItem> UserList
    {
        get { return _userList; }
        set
        {
            if (_userList != value)
            {
                _userList = value;
                RaisePropertyChanged("UserList");
            }
        }
    }

    private UserItem _selectedUser;

    public UserItem SelectedUser
    {
        get { return _selectedUser; }
        set
        {
            if (_selectedUser != value)
            {
                _selectedUser = value;
                RaisePropertyChanged("SelectedUser");
            }
        }
    }

    private string _searchText;

    public string SearchText
    {
        get { return _searchText; }
        set
        {
            if (_searchText != value)
            {
                _searchText = value;
                RaisePropertyChanged("SearchText");
            }
        }
    }

    private ICommand _searchCommand;

    public ICommand SearchCommand
    {
        get { return _searchCommand; }
        set
        {
            if (_searchCommand != value)
                _searchCommand = value;
        }
    }

    // ... other ICommands
}

提前感谢您的所有帮助,

干杯, G.

【问题讨论】:

  • 你找到解决这个问题的方法了吗?

标签: c# viewmodel expression-blend mvvm-light mvvm


【解决方案1】:

当遇到这个问题时,我发现我的属性上的属性导致了这个错误消息。

在创建示例数据时注释掉[ImportingConstructor][Export](使用Blend 编译一次项目以确保不使用旧版本)可能会起到作用。

【讨论】:

    【解决方案2】:

    更新! Laurent(MvvmLight 作者)发布了如何调试设计时数据。 Blog post here.

    我在 Blend 中或在 Visual Studio 中打开 .xaml 时找到了此错误的原因和解决方案。

    对象引用未设置为对象的实例。

    Blend 尝试运行您的设计时代码,如果在某处遇到空指针,这就是您得到的错误。

    因此,跟踪创建设计时数据的代码。很可能您忘记初始化某些内容,或者您​​的类型错误。

    如果您可以在设计器运行用户代码时捕获断点,这将很容易找到,但我认为这是不可能的。

    【讨论】:

    • 不幸的是,与 viewModel 关联的 View 的构造函数根本没有任何代码。所以,我认为这不是问题的原因。
    • 调试问题!链接放入答案。
    猜你喜欢
    • 2013-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-17
    • 2013-11-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多