2016-02-19 2 views
2

У меня есть listview, который привязывается к наблюдаемой коллекции типа person. Я добавил следующее свойство к моему лицу объекта:Как установить цвет фона элемента списка в WPF с помощью привязки данных?

public System.Windows.Media.SolidColorBrush Brush { get; set; } 

Как установить цвет моего элемента в ListView, связываясь с этой собственностью? Ниже мой XAML.

<Window x:Class="ObservableTest.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    xmlns:local="clr-namespace:ObservableTest" 
    mc:Ignorable="d" 
    Title="MainWindow" Height="350" Width="525"> 
    <Grid> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition/> 
      <ColumnDefinition Width="*"/> 
     </Grid.ColumnDefinitions> 

     <Grid.RowDefinitions> 
      <RowDefinition Height="*"></RowDefinition> 
     </Grid.RowDefinitions> 

     <StackPanel Grid.Row="0" Grid.Column="0" Margin="5,5,5,5"> 

      <TextBlock x:Name="lblName" Text="Name"></TextBlock> 
      <TextBox x:Name="txtName"></TextBox> 

      <TextBlock x:Name="lblAddress" Text="Address"></TextBlock> 
      <TextBox x:Name="txtAddress"></TextBox> 

      <Button Grid.Column="0" Width="100" Height="20" Margin="5,5,5,5" x:Name="btnNames" Click="btnNames_Click" Content="Add"></Button>   
     </StackPanel> 

     <ListView x:Name="lstNames" Margin="5,5,5,5" Grid.Column="1" Grid.Row="0"> 
      <ListView.View> 
       <GridView x:Name="grdName"> 
        <GridViewColumn Header="Name" DisplayMemberBinding="{Binding Name}" /> 
        <GridViewColumn Header="Address" DisplayMemberBinding="{Binding Address}"/> 

       </GridView> 
      </ListView.View> 
     </ListView>    
    </Grid> 
</Window> 

ответ

5

Просьба Style Недвижимость.

Этот код можно добавить в ListView, а затем он должен установить фон ListViewItems на цвет Brush.

<ListView> 
    <ListView.ItemContainerStyle> 
     <Style TargetType="{x:Type ListViewItem}"> 
      <Setter Property="Background" Value="{Binding Brush}" /> 
     </Style> 
    </ListView.ItemContainerStyle> 

    ... 

</ListView> 
Смежные вопросы