У меня есть Gridview.Column
, где стиль содержимого изменяется в зависимости от содержимого другого столбца на IMultiValueConverter
. Эта часть работает как положено.
Если значения двух значений совпадают, то текст этого столбца будет LightGray, в противном случае черный.
<GridViewColumn Header="New Name" Width="300">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding newFileName}">
<TextBlock.Style>
<Style>
<Setter Property="TextBlock.Foreground" Value="Black"></Setter>
<Style.Triggers>
<DataTrigger Value="True">
<DataTrigger.Binding>
<MultiBinding Converter="{StaticResource FileNameColorConverter}">
<!--<Binding Path="Selected"/>-->
<Binding Path="newFileName"/>
<Binding Path="fileName"/>
</MultiBinding>
</DataTrigger.Binding>
<Setter Property="TextBlock.Foreground" Value="LightGray"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
Теперь у меня есть другое свойство в этом объекте, которое связано с этим GridView. Если это ИСТИНА, текст этого столбца должен стать красным, а не черным, если он ложный, FileNameColorConverter
должен определить стиль столбца, такой же, как сейчас.
Как я могу это сделать? В данный момент я заблудился и понятия не имею, где разместить эту логику, я совершенно уверен, что есть способ получить это и в XAML.
Редактировать
Я попытался добавить еще один триггер после первого, но у меня это не сработало, если так, то что не так с моим кодом?
Я добавил это после моего первого </DataTrigger>
, но это не дало эффекта.
<DataTrigger Value="True">
<DataTrigger.Binding>
<Binding Path="FileNameError"/>
</DataTrigger.Binding>
<Setter Property="TextBlock.Foreground" Value="Red"></Setter>
</DataTrigger>