wpf смена переднего плана надписей в списке приводит к ошибке - PullRequest
0 голосов
/ 14 декабря 2018

Итак, мой код выдает ошибки, но работает как намеренный.У меня есть список с меткой внутри и стиль, который нацелен на все метки.В этом стиле есть 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> 
...