WPF Binding Converter для коллекции - PullRequest
2 голосов
/ 04 ноября 2010

У меня есть древовидная структура WPF, используемая для отображения структуры файла.Каждый элемент дерева имеет коллекцию перечислений для определения пользовательского статуса элемента.IE ObservableCollection<enumType> statusCollection;

У меня есть несколько эллипсов, которые отображаются, когда древовидный элемент имеет один из этих статусов ... что-то вроде этого:

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

Есть ли способ использовать тот жеКонвертер для нескольких эллипсов для проверки определенного статуса ... возможно, с помощью аргумента?Прямо сейчас в конвертере я перебираю коллекцию в поисках определенного перечисления ... делая это, мне нужно будет создавать новый конвертер для каждого созданного перечисления, что не идеально.

Еще лучше, какя бы хотел динамически создавать эллипсы для каждого статуса в дереве?

1 Ответ

4 голосов
/ 04 ноября 2010

Вы можете добавить 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)

Затем вы можете использовать параметр в вашем конвертере, как вам нужно.

...