我是 Caliburn 和 WPF 的新手,所以如果这是一个相当微不足道的问题,请原谅。
场景如下:我有多个控件(如按钮和文本框 - 后者是重要部分)。它们的状态(启用/禁用)取决于布尔属性。
我尝试的第一个建议方法是使用 Can[FunctionName] 约定和 NotifyOfPropertyChange(() => Can[FunctionName])。它适用于按钮,但不适用于文本框。
如何在不使用 View 的代码隐藏的情况下将 IsEnabled 属性绑定到状态?
我在 ViewModel 中尝试的代码不适用于文本框:
private bool _buttonEnableState = true;
public bool ButtonEnableState
{
get
{
return _buttonEnableState;
}
set
{
_buttonEnableState = value;
NotifyOfPropertyChange(() => CanTheButton);
NotifyOfPropertyChange(() => CanTheTextBox);
}
}
public bool CanTheButton
{
get
{
return ButtonEnableState;
}
}
public void TheButton()
{
}
public bool CanTheTextBox
{
get
{
return ButtonEnableState;
}
}
从视图:
<Button x:Name="TheButton" Content="This is the button" ... />
<TextBox x:Name="TheTextBox" ... />
提前致谢!