C# WPF绑定listviewitem的前景色

C# WPF绑定listviewitem的前景色,c#,wpf,mvvm,binding,listviewitem,C#,Wpf,Mvvm,Binding,Listviewitem,如何将ListViewItem的前景色绑定到模型的属性 public class UserModel : BaseModel { public string UserName { get; private set; } public int UserID { get; private set; } public Brush Colour { get { return m_colour; }

如何将ListViewItem的前景色绑定到模型的属性

public class UserModel : BaseModel
{
    public string UserName { get; private set; }
    public int UserID { get; private set; }
    public Brush Colour
    {
        get
        {
            return m_colour;
        }
        set
        {
            if (object.ReferenceEquals(m_colour, value))
                return;

            m_colour = value;
            OnPropertyChanged("Colour");
        }
    }

    private Brush m_colour = Brushes.Black;

    public UserModel(int userID, string userName)
    {
        UserName = userName;
        UserID = userID;
    }
}

如何找到颜色属性取决于整个结构:

<ListView Name="lvClients" Grid.Column="0" Grid.Row="0" Margin="0,0,5,0" ItemsSource="{Binding Users, Mode=OneWay}" DisplayMemberPath="UserName">
        <ListView.ItemContainerStyle>
            <Style TargetType="ListViewItem">
                <Setter Property="Foreground" Value="{Binding RelativeSource={RelativeSource AncestorType=Window}, Path=Color}"/>   
            </Style>
        </ListView.ItemContainerStyle>
</ListView>
或者直接绑定到ListView的前台,这将导致项目具有相同的前台。

您应该使用ItemTemplate。比如说

<Window.Resources>

<DataTemplate x:Key="myTemplate">
  <StackPanel Background={Binding Colour}>
    <TextBlock Text="{Binding Path=UserName}" />
  </StackPanel>  
</DataTemplate>

</Window.Resources>

<ListBox Width="400" Margin="10"
         ItemsSource="{Binding Users}"
         ItemTemplate="{StaticResource myTemplate}"/>

更多信息可以在这里找到:

以问题形式提问,并发布自己的答案是完全可以接受的。但请把它做好。问问题,回答问题。可能只是我,但我看到一个问题却没有答案?