Я пытаюсь установить цвет фона DataGridTextColumn
на другой цвет, если он доступен только для чтения. Я делаю это с помощью следующего кода:RelativeSource data trigger binding не работает
<DataGridTextColumn Header="Test" IsReadOnly="True">
<DataGridTextColumn.ElementStyle>
<Style TargetType="{x:Type TextBlock}">
<Style.Triggers>
<DataTrigger Binding="{Binding IsReadOnly, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type DataGridTextColumn}}}" Value="True">
<Setter Property="Background" Value="LightGreen"/>
</DataTrigger>
</Style.Triggers>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
Я не имею никакой удачи, однако удаление результатов триггеров в фоновом режиме, чтобы всегда быть светло-зеленым. Что-то не так с привязкой триггера данных? Я относительно новичок в WPF, но это то, что я могу найти в Интернете. В идеале это было бы в App.XAML, поэтому он работал бы во всех столбцах, таких как это, так будет ли тогда способ перевести это в стиль? Благодарю.
Редактировать ---------
Если я связываю по ElementName это работает:
<DataTrigger Binding="{Binding IsReadOnly, ElementName=stupid}" Value="True">
<Setter Property="Foreground" Value="Red" />
</DataTrigger>
Однако я хотел бы, чтобы это было более общим, если это возможно. Еще раз спасибо.
Спасибо. Однако мне нужно установить фон элемента 'DataGridTextColumn', его' TextBlock'. 'DataGridTextColumn' не имеет свойства« Background ». –
Ах не пробовал первый бит в VS. Обновлен мой ответ - снова проверьте – Clark
Спасибо, что работает. Знаете ли вы, можно ли сделать это более общим? Может быть, стиль применяется ко всему приложению, а не по имени? Может быть, новый вопрос более уместен, я не уверен. –