Код конвертера XAML с привязкой
Я пытаюсь реорганизовать такой XAML, вводя новый пользовательский контроль:
<Window ...>
<ComboBox ItemsSource="{Binding Greetings}" />
</Window>
После добавления элемента управления у меня есть
ControlA XAML:
<UserControl ...>
<ComboBox ItemsSource="{Binding Items}" />
</UserControl>
ControlA С#:
public static readonly DependencyProperty ItemsProperty =
WpfUtils.Property<IEnumerable, ControlA>("Items");
public IEnumerable Items { get; set; }
Новое окно XAML:
<Window ...>
<uc:ControlA Items="{Binding Greetings}" />
</Window>
После этого я ничего не вижу в ComboBox. Что здесь не так?
Ответы
Ответ 1
Ваш ComboBox является обязательным для DataContext. Поскольку ваш DataContext по-прежнему является объектом со списком, называемым Приветствия, это не сработает...
Ваш ContolA должен выглядеть примерно так:
<UserControl x:Name="Root" ...>
<ComboBox ItemsSource="{Binding ElementName=Root, Path=Items}" />
</UserControl>
Теперь ваш combobox привязывается к свойству Items вашего ControlA, а не к свойству DataContext...
Надеюсь, что это поможет.