我的 WPF 应用程序现在有一个可怕的问题......
我有一个自定义 UserControl 用于编辑组件的详细信息。它应该从不启用开始,并在用户选择要编辑的组件后立即启用。
问题是: IsEnabled 属性甚至没有改变。
这是我的代码:
<my:UcComponentEditor Grid.Column="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
IsEnabled="{Binding EditorEnabled}"
DataContext="{Binding VmComponent}" />
EditorEnabled 是我的 ViewModel (VmComponent) 中的一个属性,默认为 false,当用户选择一个组件或创建一个组件时变为 true
仅作记录,在我的 ViewModel 中:
private Boolean _editorEnabled = false;
public Boolean EditorEnabled
{
get { return _editorEnabled; }
set
{
_editorEnabled = value;
OnPropertyChanged("EditorEnabled");
}
}
当我尝试启动我的应用程序时,UserControl 正在启动...已启用。我到处添加断点,EditorEnabled 从一开始就是假的。
我还做了一件非常愚蠢的事情来试图弄清楚发生了什么:我创建了一个转换器(非常有用 - 将布尔值转换为布尔值 - 嗯),在它上面设置了一个断点,然后......代码永远不会到达。
<my:UcComponentEditor Grid.Column="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
IsEnabled="{Binding EditorEnabled, Converter={StaticResource BoolConverter}}"
DataContext="{Binding VmComponent}" />
这可能意味着永远不会设置属性 isEnabled,因为永远不会到达转换器。
你看到那里有什么问题吗?我大约一周前开始在 WPF 工作,因此我可能错过了一些重要的东西......
非常感谢您的宝贵时间 :-)