2015-12-07 131 views
0

我有兩個列表。事物清單和水果名單。如果物品清單中的物品是水果清單中的水果,我希望該物品突出顯示。DataTrigger WPF

我想用數據綁定和通過xmal而不是代碼隱藏b/c我正在做MVVM模式。我已經使用DataTrigger和Converter進行了嘗試,但無法使其正常工作。請幫忙。

謝謝。

<ListBox ItemsSource="{Binding Things}" 
     Name="ListOfThigns" 
     Grid.Row="1"> 
     <DataTemplate> 
      <DataTemplate.Triggers> 
       <DataTrigger Binding="{Binding Fruits}" > 
        <Setter Property="ListBoxItem.Background" Value="Green"/> 
       </DataTrigger> 
      </DataTemplate.Triggers> 
     </DataTemplate> 
    </ListBox> 

    <ListBox ItemsSource="{Binding Fruits}" 
     Name="ListOfFruits" 
     Grid.Column="1" 
     Grid.Row="1"> 
    </ListBox> 
+1

如果要實現MVVM,你應該有一個地方的東西有一個'IsFruit'屬性視圖模型。你會將DataTrigger綁定到該屬性。 – Clemens

回答

0

或者,如果水果從繼承的東西(一種水果是一個東西):

<ListView ItemsSource="{Binding Things}"> 
     <ListView.Resources> 
       <DataTemplate DataType="{x:Type dm:Fruit}"> 
        <TextBlock Text="{Binding Name}" Background="RoyalBlue"/> 
       </DataTemplate> 
       <DataTemplate DataType="{x:Type dm:Thing}"> 
        <TextBlock Text="{Binding Name}" /> 
       </DataTemplate> 
     </ListView.Resources> 
    </ListView>