使用多重绑定设置 c# wpf 组合框背景颜色

setting c# wpf combobox background color with multibinding

我试图根据组合框自身的值和其他组合框的值使我的组合框选择值背景颜色,但是在转换器中调试时我发现值 [0] 得到 dependency.not 设置值。 所以我尝试使用 Relative Source = self ,但随后出现此错误: “对象引用未设置到对象的实例”

<ComboBox.Background>
    <MultiBinding Converter="{converters:BoolToColorConverter}">
        <Binding RelativeSource="{RelativeSource Mode=Self}" Path="SelectedValue"/>
        <Binding ElementName="cbStdPlate"
            Path="SelectedIndex" />
    </MultiBinding>
</ComboBox.Background>

谁能给我提示?

检查您如何处理转换器 属性。我已经重现了你的错误并且这样做有效:

 <Window.Resources>
        <local:Converter x:Key="BoolToColorConverter"/>
 </Window.Resources>

您可以将 Window 替换为您正在使用的控件。 在后台多重绑定 属性 中,您可以这样调用转换器:

<ComboBox.Background>
   <MultiBinding Converter="{StaticResource BoolToColorConverter}">
      <Binding RelativeSource="{RelativeSource Mode=Self}" Path="SelectedValue"/>
      <Binding ElementName="cbStdPlate"
         Path="SelectedIndex" />
   </MultiBinding>
</ComboBox.Background>

有了这个,如果您调试转换器的值[] 属性,您将看到所选值作为第一个位置。