Я хочу, чтобы текст метки рядом с моей ComboBox стал красным, когда ComboBox был в ошибке, но с тем, как я в настоящее время настроил его цвет текста только для обновления начальная нагрузка элемента управления. Как мне добиться подтверждения проверки метки, когда выбор в ComboBox изменился? Или есть другой способ обновить стиль Label?Этикетка для стилизации, основанная на проверке другого элемента управления
У меня есть следующий код XAML:
<Style x:Key="labelStyle" TargetType="Label">
<Setter Property="HorizontalContentAlignment" Value="Left" />
<Setter Property="VerticalContentAlignment" Value="Center" />
<Setter Property="Validation.ErrorTemplate">
<Setter.Value>
<ControlTemplate>
<AdornedElementPlaceholder>
<Border BorderBrush="Transparent" BorderThickness="0" />
</AdornedElementPlaceholder>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="true">
<Setter Property="Background" Value="White"/>
<Setter Property="Foreground" Value="Red"/>
</Trigger>
</Style.Triggers>
</Style>
<Label Style="{StaticResource labelStyle}" Content="{Binding Path=Label, ValidatesOnDataErrors=True}" />
<ComboBox ItemsSource="{Binding Path=ItemList}" SelectedItem="{Binding Path=SelectedItem, ValidatesOnDataErrors=True}"/>
, а затем в коде:
public string this[string propertyName]
{
get
{
if (propertyName == "Label")
{
if (this.IsRequired && !DelayValidation && SelectedItem == "")
return Label + " required";
}
return null;
}
}
Работает отлично, спасибо. – rwdial