Search code examples
c#wpfbindingitemscontrol

Wpf. Color a rectangle depending on the object property from array


I want to color a rectangle depending on the object property from array. I use

<ItemsControl ItemsSource="{Binding Ports}">
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <WrapPanel />
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <Rectangle Width="10" Height="10" Margin="2,3,0,0">
                <Rectangle.Style>
                    <Style TargetType="{x:Type Rectangle}">
                       <Style.Triggers>
                           <DataTrigger Binding="{Binding Path=Ports[].Link}" Value="false">
                               <Setter Property="Fill" Value="Red"></Setter>
                           </DataTrigger>
                           <DataTrigger Binding="{Binding Path=Ports[].Link}" Value="true">
                               <Setter Property="Fill" Value="Green"></Setter>
                            </DataTrigger>                                                                
                        </Style.Triggers>
                    </Style>
                </Rectangle.Style>
            </Rectangle>
         </DataTemplate>
     </ItemsControl.ItemTemplate>
 </ItemsControl>

How to Binding to Value field Port.Link from Array Ports ? <DataTrigger Binding="{Binding Path=Ports[].Link}" Value="false">


Solution

  • It works <DataTrigger Binding="{Binding Path=Link}" Value="true"> without Ports[]