2010-11-04 109 views
2

我有一個WPF treeview用於顯示文件結構。每個treeitem都有一組枚舉來確定項目的自定義狀態。 I.E. ObservableCollection<enumType> statusCollection;WPF綁定轉換器集合

我有顯示當treeitem具有這些狀態的一個省略號幾個......這樣的事情:

<Ellipse Margin="3,0" Visibility="{Binding StatusCollection, Converter={StaticResource VisibilityConverter}}" StrokeThickness="1" Stroke="Black" Width="12" Height="12" Fill="Red" /> 

有沒有一種方法,我可以使用相同的轉換器爲多個橢圓檢查一個具體的地位......通過一個論點或許?現在在轉換器,我通過集合尋找具體的枚舉......做到這一點,我將不得不爲每個創建的枚舉創建一個新的轉換器,這是不理想的。

更好的是,我將如何去動態創建一個treeviewitem中的每個狀態的橢圓?

回答

4

你可以添加一個ConverterParameterBinding

Visibility="{Binding StatusCollection, 
     Converter={StaticResource VisibilityConverter}, 
     ConverterParameter={x:Static local:MyEnumType.EnumValue}}" 

這一操作將在

Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 

被傳遞到您的IValueConverter作爲parameter(第三個參數),然後,您可以在使用該參數你需要的轉換器。