Итак, мой код выдает ошибки, но работает как намеренный.У меня есть список с меткой внутри и стиль, который нацелен на все метки.В этом стиле есть Datatrigger, который меняет передний план при изменении enum.
Цвет переднего плана изменяется, если я меняю состояние перечисления, но на моей консоли я получаю одну ошибку для каждого элемента списка (но только если я изменяю перечисление со значения по умолчанию на Темное):
System.Windows.Data Ошибка: 4: не удается найти источник для привязки со ссылкой «ElementName = self».BindingExpression: Path = DataContext.WindowStyleProp;DataItem = NULL;целевым элементом является 'Label' (Name = '');Свойство target - «NoTarget» (тип «Object»)
Примечание. У меня только одно окно, и оно называется «self».
Вот мой код для просмотра списка:
<ListView SelectedItem="{Binding CurrentItem}" ItemsSource="{Binding FilteredItems, UpdateSourceTrigger=PropertyChanged}" Name="ItemView" Margin="0,0,0,0" HorizontalAlignment="Left" Width="134">
<ListView.ItemTemplate>
<DataTemplate>
<Label BorderThickness="0" Content="{Binding Name}" />
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
и это код стиля в моем приложении. Ресурсы:
<Style TargetType="{x:Type Label}">
<Style.Triggers>
<DataTrigger Binding="{Binding DataContext.WindowStyleProp, ElementName=self, UpdateSourceTrigger=PropertyChanged}" Value="{x:Static enum:WindowStylesEnum.Dark}">
<Setter Property="Foreground">
<Setter.Value>
<SolidColorBrush Color="White"/>
</Setter.Value>
</Setter>
</DataTrigger>
<DataTrigger Binding="{Binding DataContext.WindowStyleProp, ElementName=self, UpdateSourceTrigger=PropertyChanged}" Value="{x:Static enum:WindowStylesEnum.Default}">
<Setter Property="Foreground">
<Setter.Value>
<SolidColorBrush Color="Black"/>
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>