C# 转换器到布尔
我有一个普通的C# 转换器到布尔,c#,wpf,xaml,checkbox,binding,C#,Wpf,Xaml,Checkbox,Binding,我有一个普通的复选框,我想将IsChecked属性设置为绑定资源。 资源是一个自写类myClass,可以是null或引用(表示不null) 如果分配的对象myObject(在myClass之外)为null 并选中,如果它不是null 我必须在我的xaml文件中的IsChecked=“…”属性中写入什么?您可以使用设置IsChecked属性的DataTrigger创建一个样式 <CheckBox> <CheckBox.Style> <Style Ta
复选框
,我想将IsChecked
属性设置为绑定
资源。
资源是一个自写类myClass
,可以是null
或引用(表示不null
)
如果分配的对象myObject
(在myClass
之外)为null
并选中,如果它不是
null
我必须在我的
xaml
文件中的IsChecked=“…”
属性中写入什么?您可以使用设置IsChecked
属性的DataTrigger
创建一个样式
<CheckBox>
<CheckBox.Style>
<Style TargetType="{x:Type CheckBox}" BasedOn="{StaticResource {x:Type CheckBox}}">
<Setter Property="IsChecked" Value="True"/>
<Style.Triggers>
<DataTrigger Binding="{Binding MyObject}" Value="{x:Null}">
<Setter Property="IsChecked" Value="False"/>
</DataTrigger>
</Style.Triggers>
</Style>
</CheckBox.Style>
</CheckBox>
在任何资源字典(例如应用程序资源)中创建转换器的实例
<local:NotNullToBooleanConverter x:Key="NotNullToBooleanConverter"/>
此转换器可直接用于绑定
<CheckBox IsChecked="{Binding MyObject, Converter={StaticResource NotNullToBooleanConverter}}"/>
您可以使用设置
IsChecked
属性的DataTrigger
创建样式
<CheckBox>
<CheckBox.Style>
<Style TargetType="{x:Type CheckBox}" BasedOn="{StaticResource {x:Type CheckBox}}">
<Setter Property="IsChecked" Value="True"/>
<Style.Triggers>
<DataTrigger Binding="{Binding MyObject}" Value="{x:Null}">
<Setter Property="IsChecked" Value="False"/>
</DataTrigger>
</Style.Triggers>
</Style>
</CheckBox.Style>
</CheckBox>
在任何资源字典(例如应用程序资源)中创建转换器的实例
<local:NotNullToBooleanConverter x:Key="NotNullToBooleanConverter"/>
此转换器可直接用于绑定
<CheckBox IsChecked="{Binding MyObject, Converter={StaticResource NotNullToBooleanConverter}}"/>
我个人对ConvertBack()方法的偏好是返回Binding.DoNothing而不是抛出异常。我发现显式地指示绑定引擎忽略结果比保证在调用时不必要地抛出的方法更让我不那么焦虑。:)我个人对ConvertBack()方法的偏好是返回Binding.DoNothing,而不是抛出异常。我发现显式地指示绑定引擎忽略结果比保证在调用时不必要地抛出的方法更让我不那么焦虑。:)