Вероятно, не самый простой способ сделать это, но, возможно, самый чистый с точки зрения разделения интересов является использование преобразователя и привязка его к свойству, которое вы хотите отслеживать ...
Например, если ваша модель меняет состояние на основе логического свойства myProperty, вы можете использовать что-то вроде этого.
<StackPanel Background={Binding myProperty, Converter={StaticResource myBindingConverter}" />
Ваш конвертер должен возвращать SolidColorBrush в зависимости от стоимости вашего имущества.
public class AlternateRowColour : IValueConverter
{
SolidColorBrush normal = new SolidColorBrush(Colors.Transparent);
SolidColorBrush highlighted = new SolidColorBrush(Color.FromArgb(255, 241, 241, 241));
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
var myValue = (bool)value
return myValue ? highlighted : normal ;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}