コマンド付きのViewModel
( ) があります。UserControlViewModel
public Command PressMeCommand { get; set; }
としても:
#region Implementation of INotifyPropertyChanged
private File _myfile;
public File MyFile
{
get
{
return _myfile;
}
set
{
value = _myfile;
OnPropertyChanged("MyFile");
}
}
File
というメソッドを持つクラスはどこにありますかread()
。
allMyControls ObservableCollection<UserControlViewModel>
MainWindow に配置されたボタンにバインドされた別のコマンドを追加しています。次のコードはRootViewModel.csからのものです
private void AddUserControl()
{
UserControlViewModel myNewControl = new UserControlViewModel();
myNewControl.PressMeCommand = new Command(() => OnUserControlPressed(myNewControl ));
allMyControls.Add(myNewControl );
}
最後に、新しいコマンドを設定しています:
private void OnUserControlPressed(UserControlViewModel item)
{
if (item != null)
{
item.MyFile.read();
Num = item.MyFile.channels.Count;
}
}
PressMeCommand に対応するボタンを押すと、「NullReferenceException was unhandled」というエラーが表示されます。私の最初の反応は、ああ、MyFile を初期化していないので、これに移動したというものでした。
private void OnUserControlPressed(UserControlViewModel item)
{
if (item != null)
{
item.MyFile = new File();
item.MyFile.read(); //Here is the problem
Num = item.MyFile.channels.Count;
}
}
しかし、問題は解決しません。今、私は完全にアイデアがありません。どうなり得るか?私のプロパティを正しく初期化する方法はMyFile
?