WPF绑定转换器集合

问题描述:

我有一个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中的每个状态的椭圆?

你可以添加一个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(第三个参数),然后,您可以在使用该参数你需要的转换器。