首页 > 解决方案 > 在 MVVM 中正确放置属性的位置

问题描述

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

下面是链接

Prism 事件聚合器 - 无法读取方法

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

假设我有一个文本框。

然后我想创建一个DirectoryPath字符串属性,它将绑定在文本属性中。那我应该把这个属性放在哪里?

我怎样才能访问它?在我的视图模型中,我有一个命令。如何设置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));
        }
    }

标签: c#wpfmvvm

解决方案


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

你财产的地方在我看来是正确的。

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

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

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

推荐阅读