首页 > 解决方案 > 如何从不同 WPF c# 项目的 viewModel 禁用/启用按钮

问题描述

我是 WPF 的新手。我有两个 WPF C# 项目,project1 作为 project2 的参考。现在 project2 的视图模型中有一个按钮,基于 project2 中存在的功能,我想禁用 project1 的视图模型中存在的按钮。我尝试了什么:

项目2 ViewModelA:

button Enability
 public bool _isStartEnabled = true;
        public bool isStartEnabled
        {
            get { return _isStartEnabled; }
            set
            {
                _isStartEnabled = value; RaisePropertyChanged("isStartEnabled");
         }
       }

然后在那之后:project1 ViewModelB:

在 project1 中添加 project2 的依赖后,制作 ViewModelA 的对象

ViewModelA VM_A;


public void funcA(){
 VM_A._isStartEnabled = false;
}

但是当我放置断点时,_isStartEnabled 方法没有在 ViewModelA 中命中。

我哪里出错了,如果有人能帮忙解决,我会很好。

标签: c#wpfmvvm

解决方案


VM_A._isStartEnabled = false;

设置公共字段_isStartEnabled,它不贯穿属性代码。这是一个很好的例子,说明了为什么在 C# 中永远不应该有公共字段。

VM_A.isStartEnabled = false;

将工作(也遵循标准 C# 命名,它应该被称为“IsStartEnabled”)


推荐阅读