2011-02-14 43 views
6

我想從Expression Blend中的ViewModel類創建一些示例數據。 但Expression Blend停止並顯示「對象引用未設置爲對象的實例」。就我個人而言,我不明白這個例外來自何處。從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.

+1

您是否找到解決此問題的解決方案? – Jens 2011-08-12 12:18:41

回答

0

當面對這個問題,我發現,在屬性上我的屬性會導致此錯誤消息。

在創建示例數據(使用Blend編譯一次項目以確保不會與舊版本一起工作)時註釋掉[ImportingConstructor][Export]可能會在這裏實現。

1

更新! Laurent(MvvmLight作者)發佈瞭如何調試設計時間數據。 Blog post here.

我在Blend或在Visual Studio中打開.xaml時發現了此錯誤的原因和解決方案。

未將對象引用設置爲對象的實例。

Blend會嘗試運行您的設計時間代碼,如果它在某處遇到空指針,這就是您得到的錯誤。

因此,跟蹤您的代碼創建設計時間數據。很可能你忘記了初始化的東西或者你的類型錯誤。

如果您可以在設計者運行用戶代碼時捕捉到斷點,這很容易找到,但我認爲這不可能。

+0

不幸的是,與viewModel關聯的視圖的構造函數根本沒有任何代碼。所以,我不認爲這可能是問題的原因。 – 2013-07-15 17:56:54

相關問題