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