我想将Button IsEnabled绑定到我的ViewModel。所以我尝试了这个:
<Button Content="{Binding Icon}" Command="{Binding Connect}" IsEnabled="{Binding ConnectBtnEnable, Mode=TwoWay}" />
在viewmodel中:
private bool _ConnectBtnEnable = true;
public bool ConnectBtnEnable
{
get { return _ConnectBtnEnable; }
set { _ConnectBtnEnable = value; OnPropertyChanged(); }
}
但是当我在使用中设置属性时:
public void Connect()
{
ConnectBtnEnable = false;
}
它没有用,有什么问题。提前谢谢!
答案 0 :(得分:1)
如果您使用按钮的命令,建议不要单独绑定按钮的IsEnabled
属性。相反,您应该在命令的“CanExecute”方法实现中提供正确的值。这应该相应地启用或禁用按钮。
您可以参考此文章,了解示例ICommand
实施 - https://www.codeproject.com/Tips/813345/Basic-MVVM-and-ICommand-Usage-Example
此外,要更新控件 - 请确保更新VM的属性(不是成员字段);这样就会触发通知更新,并更新绑定目标(控制状态)。
答案 1 :(得分:0)
因为您需要设置ConnectBtnEnable
而不是_ConnectBtnEnable
。这是一个很好的例子,您应该以不同于属性的方式命名您的私有字段。例如,_connectBtnEnable
。