【发布时间】:2018-05-14 13:27:55
【问题描述】:
我有一个Button,需要以编程方式启用/禁用。我想通过绑定到bool 来实现这一点。这是按钮 XAML:
<Button x:Name="logInButton" Height="30" IsEnabled="{Binding IsLoggedIn}">
<Image Source="/images/img.png"></Image>
</Button>
这里是被调用的代码:
public MainWindow()
{
InitializeComponent();
enabled = false;
}
private bool enabled;
public bool IsLoggedIn
{
get
{
return enabled;
}
set
{
enabled = value;
}
}
属性IsLoggedIn 的值已正确分配。但是IsEnabled 没有分配我需要的值。例如:
我尝试使用 Binding Path 和 Binding Source 设置值,但没有任何效果。
请告知可能出了什么问题。
【问题讨论】:
-
除非您将数据上下文分配给控件,否则
IsLoggedIn必须是视图模型中的属性,而不是后面的视图代码中的属性(如果您的数据上下文是视图,那么现在恢复它。 ..) -
如果在 GUI 加载后更改 IsLoggedIn,则需要让 WPF 系统知道该值已更改。将 IsLoggedIn 声明为
DependencyProperty或实现INotifyPropertyChanged