2017-03-01 33 views
1

ブール値の値に応じて、ListBoxのItemTemplateの背景色を変更する必要があります。ここで は私のリストボックスである:WPF ItemTemplateの背景色を変更する

<ListBox Name="itemListBox" 
     ScrollViewer.VerticalScrollBarVisibility="Visible" 
     SelectionChanged="itemListBox_SelectionChanged"> 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
      <StackPanel Orientation="Horizontal"> 
       <StackPanel Width="200"> 
        <TextBlock FontSize="10" 
           FontWeight="Bold" 
           VerticalAlignment="Center" 
           Text="{Binding Path=Value.DocID}" /> 
        <TextBlock FontSize="10" 
           VerticalAlignment="Center" 
           TextWrapping="Wrap" 
           Text="{Binding Path=Value.Serial}"/> 
       </StackPanel> 
      </StackPanel> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 

ユーザーが項目を削除した場合、私は灰色backrgoundで彼を示したいと思います。
精度:ListBoxはブール値 "IsDeleted"を含むDictionnaryにバインドされています。 英語が貧しい人には申し訳ありません。
はあなたがDataTriggerItemContainerStyleを使用することができ、あなたに

+0

「ユーザーがアイテムを削除した場合」、コードではどういう意味ですか?アイテムに削除されたことを示すフラグがありますか? –

+0

ListBoxは、ブール値「IsDeleted」を含むDictionnaryにバインドされています。 – betsou

答えて

3

ありがとう:

<ListBox Name="itemListBox" ScrollViewer.VerticalScrollBarVisibility="Visible" SelectionChanged="itemListBox_SelectionChanged"> 
    <ListBox.ItemContainerStyle> 
     <Style TargetType="ListBoxItem"> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding Value.IsDeleted}" Value="True"> 
        <Setter Property="Background" Value="Gray" /> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </ListBox.ItemContainerStyle> 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
      <StackPanel Orientation="Horizontal"> 
       <StackPanel Width="200"> 
        <TextBlock FontSize="10" FontWeight="Bold" VerticalAlignment="Center" Text="{Binding Path=Value.DocID}" /> 
        <TextBlock FontSize="10" VerticalAlignment="Center" TextWrapping="Wrap" Text="{Binding Path=Value.Serial}"/> 
       </StackPanel> 
      </StackPanel> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 

は、あなたが動的にプロパティを設定しようとすると背景をしたい場合IsDeletedプロパティを持つクラスが正しくINotifyPropertyChangedインタフェースを実装していることを確認してくださいそれに応じて更新されます。

+0

ありがとうございました! はい、INotifyPropertyChangedが実装されました。 – betsou

関連する問題