用于集合的WPF绑定转换器

时间:2010-11-04 15:11:10

标签: wpf collections binding typeconverter

我有一个用于显示文件结构的WPF树视图。每个treeitem都有一个枚举集合,用于确定项目的自定义状态。 I.E. ObservableCollection<enumType> statusCollection;

当treeitem具有以下状态之一时,我会显示几个省略号...如下所示:

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

有没有办法可以使用相同的Converter for multiple ellipses来检查特定的状态......也许通过参数?现在在转换器中,我遍历集合寻找特定的枚举...这样做,我将不得不为每个创建的枚举创建一个新的转换器,这是不理想的。

更好的是,我如何在treeviewitem中为每个状态动态创建省略号?

1 个答案:

答案 0 :(得分:4)

您可以向ConverterParameter添加Binding

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

然后,这将作为IValueConverter(第三个参数)传递到您的parameter

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

然后,您可以根据需要在转换器中使用该参数。