В настоящее время я учусь создавать собственные элементы управления в WPF. Я успешно создал простой пользовательский элемент управления, используя метку и текстовое поле. Мне удалось разрешить установку текста метки с помощью DependencyProperty.
Теперь я создаю пользовательский элемент управления с ComboBox. Мне нужно разрешить добавлять элементы в этот ComboBox извне элемента управления.
Чтобы добиться этого, я попытался выставить свойство DependencyProperty типа ItemsCollection, и оно позволит получить доступ к свойству ComboBox's Items (DP в моем контрольном образце называется CbItems). Но я получаю ошибки, потому что свойство Items Combobox имеет значение ReadOnly.
Контроль XAML
<UserControl x:Class="MyWpfApp.Controls.MyControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Height="Auto" Width="Auto">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Label Grid.Column="0" Content="{Binding FieldLabel}"></Label>
<ComboBox Name="cmb" Grid.Column="1" Width="150"></ComboBox>
</Grid>
</UserControl>
MainWindow XAML
<Window x:Class="MyWpfApp.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:ctl="clr-namespace:MyWpfApp.Controls"
Title="Window1" Height="300" Width="300">
<Grid>
<ctl:MyControl>
<ctl:MyControl.CbItems>
<ComboBoxItem>Hello</ComboBoxItem>
<ComboBoxItem>World</ComboBoxItem>
<ComboBoxItem>Hi</ComboBoxItem>
</ctl:LobCombox.CbItems>
</ctl:LobCombox>
</Grid>
</Window>
Я хотел бы знать, как правильно добиться этой функциональности. Я считаю, что ответ на этот вопрос может также помочь с другими элементами управления, такими как GridView и т. Д.
Большое спасибо