Meg*_*ind 3 data-binding wpf mvvm
我正在使用MVVM模式,我的视图中的datacontext有一个属性Customer.现在我想根据Customer.CustomerID属性的值绑定我的文本框的IsEnabled属性.如果它大于0则应启用else禁用.
我理解我可以在视图模型中轻松添加bool属性并将其绑定到我的文本框的IsEnabled属性,但这似乎是一种矫枉过正.
Pav*_*nin 10
有几种选择.
首先,您可以使用DataTrigger
<TextBox>
<TextBox.Style>
<Style TargetType="TextBox">
<Setter Property="IsEnabled" Value="True"/>
<Style.Triggers>
<DataTrigger Binding="{Binding Customer.CustomerID}" Value="0" >
<Setter Property="IsEnabled" Value="False"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBox.Style>
<TextBox>
Run Code Online (Sandbox Code Playgroud)
请注意,来自DataTrigger的setter的值只能覆盖样式设置器中设置的值.如果直接设置该值,则触发器将不起作用.
原因是依赖属性值优先.
DataTrigger仅适用于相等条件,因此如果您需要检查负数,那么请使用第二个选项 - 值转换器
| 归档时间: |
|
| 查看次数: |
12636 次 |
| 最近记录: |