3个不同的风格我有一个Gridview.Column
其中内容的风格依赖于另一列由IMultiValueConverter
内容改变。这部分按预期工作。如何使用基于两个不相关的触发器
如果这两个值的值相同,则此列的文字是浅灰色,否则黑。
<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。如果这是TRUE,则此列的文本应该变为红色,而不是黑色,如果它为假,则FileNameColorConverter
应该决定列的样式,与现在相同。
我怎样才能做到这一点?我目前在迷失方向,不知道该把逻辑放在哪里,我相当确信在XAML中也有这种方法。
编辑
我尝试的第一个后加入另一个触发,但它并没有为我工作,如果这是要走的路,什么是错我的代码?
我添加了这个后,我的第一个</DataTrigger>
但它并没有产生影响。
<DataTrigger Value="True">
<DataTrigger.Binding>
<Binding Path="FileNameError"/>
</DataTrigger.Binding>
<Setter Property="TextBlock.Foreground" Value="Red"></Setter>
</DataTrigger>
哇,你可以看到我的错误...我忘了提高该属性的'NotifyPropertyChanged'。谢谢你的提示。 – stema 2012-03-15 12:23:48