C# WPF绑定listviewitem的前景色
如何将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; }
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}"/>
更多信息可以在这里找到:以问题形式提问,并发布自己的答案是完全可以接受的。但请把它做好。问问题,回答问题。可能只是我,但我看到一个问题却没有答案?