, (aynı Nesne daha sonra tasarım Odaklı ve özelliklerinin kapalı çalışma düşünüyorum bayraklar) farklı devletler vermek.
Ardından, Xaml stillerini kullanarak, aradığınız etkiyi elde etmek için bu farklı özellikleri devre dışı bırakın. Bir sipariş ilerleme (= true
InProgress
) gibi işaretlendiğinde bizler liste kutusu "için söylemek kırmızı göstermek istiyorum bu özelliklerin
public class Order
{
public string CustomerName { get; set; }
public int OrderId { get; set; }
public bool InProgress { get; set; }
}
ile Order
sınıf var örneğin
Say Alfa" ve "Omega" hangi devam etmektedir:
ListBox Xaml
Burada
(Bağlayıcı nasıl size kalmış) verilerimiz bağlanır ve bunu sağlamak için Style (ler), DataTemplate ve DataTrigger (ler) ile çalışmak nasıl gösterir Xaml geçerli:
İşte
<ListBox ItemsSource="{StaticResource Orders}"
x:Name="lbOrders">
<ListBox.Resources>
<DataTemplate DataType="{x:Type model:Order}">
<TextBlock Text="{Binding Path=CustomerName}" />
</DataTemplate>
<Style TargetType="{x:Type ListBoxItem}">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=InProgress}"
Value="True">
<Setter Property="Foreground"
Value="Red" />
</DataTrigger>
</Style.Triggers>
</Style>
</ListBox.Resources>
</ListBox>
bunu sayfaların en kaynağın Xaml veri kurulumu, ama arkasındaki kodu oluşabileceğini:
<Window.Resources>
<model:Orders x:Key="Orders">
<model:Order CustomerName="Alpha"
OrderId="997"
InProgress="True" />
<model:Order CustomerName="Beta"
OrderId="998"
InProgress="False" />
<model:Order CustomerName="Omega"
OrderId="999"
InProgress="True" />
<model:Order CustomerName="Zeta"
OrderId="1000"
InProgress="False" />
</model:Orders>
</Window.Resources>
Bu özellik, tam özellikli bir kullanıcı arayüzünü oluşturmaya ve oluşturmaya yetecek kadar veri sağlamalıdır.
listBox.SelectedValue = "Orange Juice"; ? –
@Anton Danylov bir fare tıklatması veya anarrow kullanarak seçilen değer değil. Bir arka plan rengi hava vermek istiyorum "Portakal Suyu" seçildi ya da değil ... Bu yüzden başka bir şey seçilmiş olsa bile sürekli "Portakal Suyu" vurgulamak istiyorum! ve pozisyon değiştiğinde hala vurgulanır – Decoder94
İstenilen sonuca ulaşmak için minimum kod değişikliklerine bir cevap eklendi. –