我现在遇到一个关于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就是false。
我还做了一件非常愚蠢的事情来尝试弄清楚发生了什么:我创建了一个转换器(非常有用-将布尔值转换为布尔值-是吗),在它上面设置了断点,但是代码从未到达过那里。
<my:UcComponentEditor Grid.Column="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
IsEnabled="{Binding EditorEnabled, Converter={StaticResource BoolConverter}}"
DataContext="{Binding VmComponent}" />
这可能意味着isEnabled属性从未被设置,因为转换器从未被触发。
你是否看到任何问题?我一周前开始使用WPF,因此可能错过了一些重要的东西...
非常感谢您的时间 :-)
_editorEnabled = value;
这一行吗? - Fun Mun Pieng