我在XAML中具有以下绑定,其中XAML IsEnabled的类型为bool,并且Length是类型为int的Array的属性。
<Button
Content="Press Me"
IsEnabled="{Binding MyArray.Length, FallbackValue=False}">
</Button>
Run Code Online (Sandbox Code Playgroud)
它实现了我想要的功能,当数组长度为0时,它禁用,当数组包含启用元素时,它禁用。
但是,我没想到它会起作用,因为您不能在C#中将int隐式转换为bool。
这样安全吗?
似乎没有任何地方记录这种行为,因此您不应该依赖它。
一个安全而简单的解决方案是使用带有DataTrigger的样式:
<Button Content="Press Me">
<Button.Style>
<Style TargetType="Button">
<Style.Triggers>
<DataTrigger Binding="{Binding MyArray.Length}" Value="0">
<Setter Property="IsEnabled" Value="False"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1303 次 |
| 最近记录: |