我遇到了绑定TextBox IsEnabled
属性的问题.我在这个论坛上看过一些帖子,根据这些帖子,下面的代码应该起作用(至少这是我的想法).但是,当我运行应用程序时,IsNumberEnabled
属性上的调用只执行一次 - 就在加载相应的视图之前.有人可以帮我一把.谢谢.
XAML:
<Textbox Text="{Binding Path=Number, Mode=TwoWay}" IsEnabled="{Binding Path=IsNumberEnabled}" ... />
Run Code Online (Sandbox Code Playgroud)
模型视图:
public bool IsNumberEnabled
{
get { return ... condition ....; } }
Run Code Online (Sandbox Code Playgroud)
你的ModelView
班级需要INotifyPropertyChanged
正确实施.
当您更改影响您的值时...condition...
,您需要将PropertyChanged
其"IsNumberEnabled"
作为属性名称加注.这将导致WPF再次获取并检查该值.
这通常意味着您将拥有需要级联和PropertyChanged
多次引发事件的其他属性.例如,如果IsNumberEnabled
依赖于另一个名为的属性Foo
,那么Foo
属性定义将如下所示:
public double Foo
{
get { return foo; }
set
{
if (foo != value)
{
foo = value;
RaisePropertyChanged(); // Raise PropertyChanged event for "Foo"
RaisePropertyChanged("IsNumberEnabled"); // Tell WPF to check this property too
}
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4128 次 |
最近记录: |