Я пытаюсь создать DataTrigger, который меняет стиль границы при каждом изменении определенного свойства. Я создал свойство и вызываю событие PropertyChanged, и оно отлично работает с другими компонентами XAML, но по какой-то причине оно не будет работать с моим DataTrigger.
Файл XAML:
<Style x:Key="InputParameterBorder" TargetType="Border" BasedOn="{StaticResource ParameterBorder}">
<Setter Property="Background" Value="{StaticResource GrayGradient}"/>
<Style.Triggers>
<!-- This changes input color -->
<DataTrigger Binding="{Binding Parameter, Converter={StaticResource IsNullConverter}}" Value="False">
<Setter Property="Background" Value="{StaticResource YellowGradient}" />
</DataTrigger>
</Style.Triggers>
</Style>
C # Файл:
private IInputParameter _parameter;
public event PropertyChangedEventHandler PropertyChanged;
public IInputParameter Parameter
{ get
{
return _parameter;
}
set
{
_parameter = value;
PropertyChanged(this, new PropertyChangedEventArgs("Parameter"));
}
}
РЕДАКТИРОВАТЬ: я изменил InputParameter на параметр в методе Binding, но он по-прежнему не работает.
РЕДАКТИРОВАТЬ 2: Добавлен код XAML с реализацией InputParameterBorder.
<DataTemplate x:Key="InputParameterBox">
<Border Style="{StaticResource InputParameterBorder}"
AllowDrop="True" DragEnter="InputParameter_DragEnter" Drop="InputParameter_Drop"
MouseLeftButtonDown="InputParameter_MouseLeftButtonDown">
<Grid>
<TextBlock Text="{Binding Parameter.Type}"
Style="{StaticResource InputParameterTypeLabel}" />
<TextBlock Text="{Binding Parameter.Name}" Style="{StaticResource InputParameterNameLabel}" />
</Grid>
<!--TextBlock Text="{Binding Type, Converter={StaticResource WorkflowParameterTypeConverter}}" -->
</Border>
</DataTemplate>
И реализация InputParameterBox:
<DataTemplate>
<ItemsControl ItemsSource="{Binding InputParameters}"
ItemTemplate="{StaticResource InputParameterBox}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Orientation="Horizontal" HorizontalAlignment="Center" MaxWidth="200" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
</DataTemplate>