2

我有一个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

4

1 回答 1

1

你已经进入value = _myfile;了属性设置器。你当然需要扭转这一点。

于 2013-06-04T20:49:08.100 回答