WPF 按钮已启用绑定失败



我想将 Button IsEnabled 绑定到我的 ViewModel。所以我试了这个:

<Button Content="{Binding Icon}"  Command="{Binding Connect}" IsEnabled="{Binding ConnectBtnEnable, Mode=TwoWay}" />

在视图中模型:

private bool _ConnectBtnEnable = true;
public bool ConnectBtnEnable 
{  
get { return _ConnectBtnEnable; } 
set { _ConnectBtnEnable = value; OnPropertyChanged(); } 
}

但是当我在使用中设置属性时:

public void Connect()
{ 
ConnectBtnEnable = false;
}

不行,有什么问题。提前感谢!

如果对按钮使用命令,建议不要单独绑定按钮的IsEnabled属性。相反,您应该在命令的"CanExecute"方法实现中提供正确的值。这应该相应地启用或禁用该按钮。

可以参考本文以获取实现ICommand示例 - https://www.codeproject.com/Tips/813345/Basic-MVVM-and-ICommand-Usage-Example

此外,若要更新控件 - 请确保更新 VM 的属性(不是成员字段(;以便触发通知更新,并更新绑定目标(控件状态(。

因为您需要设置ConnectBtnEnable而不是_ConnectBtnEnable.这是一个很好的示例,您应该以属性以外的其他方式命名私有字段。例如,_connectBtnEnable.

最新更新