2011-01-15 2 views
-3

Как бы связать цвет переднего плана ListViewItem с свойством модели?WPF привязывает цвет переднего плана 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" />

+3

Просить что-то в форме вопроса, и разместить свой собственный ответ вполне приемлемо. Но, пожалуйста, сделайте это правильно. На самом деле задайте вопрос и на самом деле ответьте на него. –

+0

Мог бы просто быть мной, но я вижу вопрос и никакого ответа ...? – efdee

ответ

2

Как вы нашли свойство цвета зависит от вашей полной структуры:

<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> 

Или вы просто привязать к Foreground из ListView непосредственно, который вызовет элементы, чтобы иметь тот же передний план.

0

Вы должны использовать 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}"/> 

Более подробную информацию об этом можно найти здесь: http://msdn.microsoft.com/en-us/library/system.windows.controls.itemscontrol.itemtemplate.aspx

Смежные вопросы