Ваш производный ListBox просто игнорирует XAML, потому что вы, очевидно, нигде не вызывали InitializeComponent()
.
Однако обычный способ получить элемент управления - создать стиль по умолчанию в Themes\Generic.xaml
. Добавьте «пользовательский элемент управления» в ваш проект Visual Studio и измените его следующим образом:
public class ExtendedCheckedListBox : ListBox
{
static ExtendedCheckedListBox()
{
DefaultStyleKeyProperty.OverrideMetadata(
typeof(ExtendedCheckedListBox),
new FrameworkPropertyMetadata(typeof(ExtendedCheckedListBox)));
}
}
Затем измените содержимое сгенерированного Themes\Generic.xaml
файла на это:
<Style TargetType="local:ExtendedCheckedListBox">
<Setter Property="ItemTemplate">
<Setter.Value>
<DataTemplate>
<CheckBox Content="{Binding Description}"/>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
Подробнее см. Обзор авторизации управления .