Настройка стиля на основе существования типа предка
У меня есть 2 набора текстовых блоков, некоторые из которых находятся в элементе управления контентом, а некоторые нет, я хочу создать стиль (только на основе типа), который устанавливает фон текстового блока, если его предком является ItemControl.
Я могу сделать это с помощью следующего кода, но проблема в том, что в журнале (и окне вывода) будет отображаться сообщение об ошибке привязки данных из-за текстовых блоков, которые не имеют Itemcontrol в качестве ancestore. Есть ли лучший способ сделать эту задачу и избежать этого сообщения об ошибке?
Convertor:
class HasAncestorConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return value != null;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
Сообщение об ошибке:
System.Windows.Data Ошибка: 4: не удается найти источник для привязки со ссылкой 'RelativeSource FindAncestor, AncestorType = 'System.Windows.Controls.ItemsControl», AncestorLevel = '1' ', BindingExpression: Path =; DataItem = NULL; целевой элементTextBlock» (Name = ''); целевое свойство 'Нет цели' (тип 'Объект ')