Search code examples
wpfc#-4.0mvvmmultibinding

How to use multibiding with a Style Setter


The alternate row style is defined as:

<Style TargetType="telerik:GridViewRow">
     <Setter Property="Background" Value="{Binding Color,Converter={StaticResource dataToColorConverter}}">
</Style>

But I want to update the rowstyle depedninng on multiple values. I want to achieve something like this.

<Style>
    <Setter Property="Background" >
               <MultiBinding Converter={StaticResource  dataToColorConverter}>
               <Binding Path="Color"/>
               <Binding ElementName="myListBox" Path="SelectedItem"/>
               </MultiBinding>
    </Setter>
</Style>

But getting the error "The type 'Setter' does not support direct content."


Solution

  • Because the Setter element doesn't support direct content, you must specify that you are setting the Value property (include "<Setter.Value>" in your XAML):

    <Setter Property="Background" >
        <Setter.Value>
            <MultiBinding Converter="{StaticResource dataToColorConverter}" >
                <Binding Path="Color" />
                <Binding ElementName="myListBox" Path="SelectedItem" />
            </MultiBinding>
        </Setter.Value>
    </Setter>