我有一个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 未处理”。我的第一反应是,哦,我还没有初始化 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
?