2010-01-29 89 views
1

我有以下XAML中綁定到收集和屬性:MultiDataTrigger收集

<Style.Triggers> 

    <MultiDataTrigger> 
    <MultiDataTrigger.Conditions> 
     <Condition Binding="{Binding Path=Errors, Converter={StaticResource ErrorsCountConverter}}"> 
     <Condition.Value>True</Condition.Value> 
     </Condition> 
     <Condition Binding="{Binding Path=Errors[0].HasError}" Value="True" /> 
    </MultiDataTrigger.Conditions> 
    <Setter Property="Background" Value="Red" /> 
    </MultiDataTrigger> 

</Style.Triggers> 

錯誤是ObservableCollection<BrokenRule>。 BrokenRule有一個名爲HasError的屬性。現在,我想綁定到HasError屬性,但不知道如何在XAML中引用它。

+0

您的XAML看起來是正確的:您可以使用索引器語法獲取集合的第一個BrokenRule,然後.HasError會讓您知道BrokenRule的HasError屬性。你看到什麼問題?在輸出窗口中看到了什麼數據綁定錯誤? – itowlson 2010-01-29 19:38:29

+0

Errors集合包含整個ViewModel的破碎規則。你能解釋一下索引器的語法嗎?我用。[0] .HasError,但它沒有顯示任何東西。 – azamsharp 2010-01-29 21:18:08

+0

順便說一句我沒有看到任何錯誤。錯誤是列表,其中包含整個視圖模型的破壞規則。 – azamsharp 2010-01-29 21:24:20

回答

2

存在一個相對未知的正斜槓語法來訪問集合的當前項目。所以如果你想綁定到數據源的當前項目,你會使用"{Binding Path=/}",因爲你似乎想要自動增加你的錯誤集合,並讓HasError作出相應的響應,你應該可以使用類似"{Binding Path=Errors/HasError}"的東西來獲取HasErrors錯誤中當前項目的屬性。

希望有幫助!