Создайте ValueConverter, который принимает " value" соответствующего типа в сетке, а затем привяжите цвет фона строки к этому полю с помощью ValueConverter, чтобы предоставить Цветная кисть или любая другая кисть (которая имеет смысл), которую вы хотели бы добавить туда.
ИЗМЕНИТЬ
Вот конвертер, который преобразует логическое значение в цвет кисти. Этот класс имеет два свойства, называемые «True» и «False», которым мы устанавливаем кисть, которая будет использоваться, когда логическое значение соответствует свойству. Преобразователь является односторонним и не преобразует кисти обратно в логические значения.
XAML для создания экземпляра преобразователя и установки свойств
<cga:BoolToBrushConverter x:Key="trueIsGreen"
True="Green"
False="Red"/>
Код конвертера C#
[ValueConversion(typeof(bool), typeof(Brush))]
public class BoolToBrushConverter : IValueConverter
{
public Brush True
{
get; set;
}
public Brush False
{
get; set;
}
public object Convert(object value, Type targetType,
object parameter, CultureInfo culture)
{
if (targetType != typeof(Brush))
{
return null;
}
return ((bool) value) ? True : False;
}
public object ConvertBack(object value, Type targetType,
object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
Пример привязки значения и преобразования в поле объекта, принимающего кисти
<Ellipse Width="10" Height="10"
Fill="{Binding Path=Reviewer.IsMentor, Mode=OneWay,
Converter={StaticResource trueIsGreen}}"/>
Я предполагаю, что вы знакомы с привязкой данных в WPF и не будете подробно останавливаться на этом аспекте решения, но когда Reviewer.IsMentor
истинно, преобразователь предоставит «зеленую» кисть (отправленную при создании преобразователя) для свойства «Заливка» эллипс.
person
Dave White
schedule
16.08.2010