Ult*_*nks 1 c# data-binding wpf dependency-properties
我的目标是基于标志的值禁用和启用GUI上的一些项目,该标志将在窗口后面的代码中执行期间更改.我已经设置了DependencyProperty来实现这一目标.我相信我所要做的就是将this属性绑定到适当的"IsEnabled"属性,一切都应该有效.有些东西没有正确连接,所以没有任何事情发生.我在这里或某些地方遗漏了一些语法吗?
这是WPF(MainWindow.xaml)中的绑定:
<MenuItem Name="LoggingMenuItem" Header="_Logging" IsCheckable="True" Checked="LoggingMenuItem_Checked" IsEnabled="{Binding ElementName=IsMonitoring}" />
Run Code Online (Sandbox Code Playgroud)
这是后面的代码中的"IsMonitoring"属性的声明(MainWindow.xaml.cs):
public static readonly DependencyProperty IsMonitoringProperty =
DependencyProperty.Register("IsMonitoring", typeof(Boolean), typeof(Window));
public bool IsMonitoring
{
get { return (bool)GetValue(IsMonitoringProperty); }
set { SetValue(IsMonitoringProperty, value); }
}
Run Code Online (Sandbox Code Playgroud)
您的绑定配置不正确.ElementName属性应指向Window中的"Element"(即控件),您应该使用Path属性指定属性名称.
在您的情况下,您希望为窗口指定一个名称.我倾向于使用"this"这个名字,但当然它可以是你想要的任何东西.
<Window x:Name="this"
...
>
...
<MenuItem IsEnabled="{Binding ElementName=this, Path=IsMonitoring}" />
...
</Window>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2556 次 |
| 最近记录: |