ilgili:
DataGridTextColumn xaml:
<DataGridTextColumn Width="SizeToCells"
MinWidth="150"
Binding="{Binding Name}">
<DataGridTextColumn.ElementStyle>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="TextBlock.Background" Value="{Binding Color}" />
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
veri öğesi beyan İşte bir örnek. Sadece bu durumda Green, varsayılan arka plan özelliği ile ElementStyle ayarlayın ve diğer durumlar için DataTriggers ekleyin: bununla
<DataGridTextColumn Binding="{Binding WhateverIWantToDisplay}" >
<DataGridTextColumn.ElementStyle>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="Background"
Value="{Binding Foo, Converter={x:Static my:FooToColorConverter.Instance}}" />
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
:
<DataGridTextColumn Binding="{Binding WhateverIWantToDisplay}" >
<DataGridTextColumn.ElementStyle>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="Background" Value="Green" />
<Style.Triggers>
<DataTrigger Binding="{Binding Foo}" Value="1">
<Setter Property="Background" Value="Blue" />
</DataTrigger>
<DataTrigger Binding="{Binding Foo}" Value="2">
<Setter Property="Background" Value="Red" />
</DataTrigger>
<DataTrigger Binding="{Binding Foo}" Value="2">
<Setter Property="Background" Value="Yellow" />
</DataTrigger>
</Style.Triggers>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
başka bir yaklaşım, bir dönüştürücü ile bağlama kullanmaktır çevirici: serge_gubenko yanı çalışacak verdi cevap
public class FooToColorConverter : IValueConverter
{
public static readonly IValueConverter Instance = new FooToColorConverter();
public object Convert(object value, ...
{
int foo = (int)value;
return
foo==1 ? Brushes.Blue :
foo==2 ? Brushes.Red :
foo==3 ? Brushes.Yellow :
foo>3 ? Brushes.Green :
Brushes.Transparent; // For foo<1
}
public object ConvertBack(...
{
throw new NotImplementedException();
}
}
Not fakat sadece eğer Foo özellik değeri ne Ver değişir. Bunun nedeni, Renk özelliği alıcı yalnızca bir kez çağrılacak olmasıdır. Onun çözümü salt okunur DependencyProperty için Renk değiştirme ve Foo atanan her onu güncelleyerek iyileştiğini, ancak genellikle veri modelindeki renklerin gibi UI özgü bilgi sahibi kötü bir fikir, bu yüzden tavsiye edilmez edilebilir.
Çok teşekkür ederim. Ben WPF ile çalışmak için çok sinir bozucu buluyorum çünkü o hataları gizleme eğilimi ve sadece doğru kodu yoksa bir şey yapmaz. Ama ne zaman çalıştığını ve ne yaptığını bildiğinde, yıldırım hızlı ve kullanımı kolaydır. WPF'nin kullandığım herhangi bir teknolojinin en dik öğrenme eğrisine sahip olduğunu dürüstçe söyleyebilirim. Neyse, tekrar teşekkürler. Dönüştürücüye gittim çünkü bana en büyük esnekliği veriyor. –
Güzel .. !!! Benim tarafımdan +1 .. !! – samar