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,而不是抛出异常。我发现显式地指示绑定引擎忽略结果比保证在调用时不必要地抛出的方法更让我不那么焦虑。:)