我有一个用于显示文件结构的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中为每个状态动态创建省略号?
答案 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)
然后,您可以根据需要在转换器中使用该参数。