将属性正确放置在MVVM中的何处

时间:2019-02-20 01:41:21

标签: c# wpf mvvm

昨天我在这里问,视图模型如何相互交流。因为我的程序是设计的。一个视图模型包含一个属性。以一个名为DirectoryPath的属性为例,在另一个View模型中,我想访问DirectoryPath

的值

下面是链接

Prism Event Aggregator - method cannot be read

然后出现另一个问题。评论说。我做错了。

假设我有一个文本框。

然后,我想创建一个DirectoryPath字符串属性,该属性将被绑定到text属性中。那我应该把这个财产放在哪里?

我该如何访问呢?在我的视图模型中,我有一个命令。用户单击按钮时如何设置DirectoryPath的文本?

这个月我花在做MVVM和WPF上的所有内容都错了吗?我想解决这个问题。

我的ViewModel的示例代码

class ViewModel : INotifyPropertyChanged
    {
        private string _DirectoryPath;

        public string DirectoryPath
        {
            get { return _DirectoryPath; }
            set
            {
                _DirectoryPath = value;
                OnPropertyChanged("DirectoryPath");
            }
        }

        public event PropertyChangedEventHandler PropertyChanged;

        public void OnPropertyChanged(string name)
        {
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
        }
    }

1 个答案:

答案 0 :(得分:0)

  

然后,我想创建一个DirectoryPath字符串属性,该属性将被绑定到text属性中。那我应该把这个财产放在哪里?

您的财产所在的地方对我而言似乎正确。

  

在我的视图模型中,我有一个命令。用户单击按钮时如何设置DirectoryPath的文本?

您将委托添加到命令中,在委托中您将DirectoryPath变量设置为所需的值。

  public Command Something => new Command (x => DirectoryPath = 'this is you value');