Я пытаюсь создать элемент управления, который примет ItemsSource
и InnerTemplate
и покажет все элементы, завернутые в CheckBox
es.
Элемент управления имеет 2 свойства зависимостей:
public static readonly DependencyProperty ItemsSourceProperty = DependencyProperty.Register("ItemsSource", typeof(IEnumerable), typeof(CheckBoxWrapperList), null);
public static readonly DependencyProperty InnerTemplateProperty = DependencyProperty.Register("InnerTemplate", typeof(DataTemplate), typeof(CheckBoxWrapperList), null);
и вот шаблон:
<ControlTemplate TargetType="local:CheckBoxWrapperList">
<Grid>
<Grid.Resources>
<DataTemplate x:Key="wrapper">
<CheckBox>
<ContentPresenter ContentTemplate="{TemplateBinding InnerTemplate}" Content="{Binding}" />
</CheckBox>
</DataTemplate>
</Grid.Resources>
<ItemsControl ItemTemplate="{StaticResource wrapper}" ItemsSource="{TemplateBinding ItemsSource}" />
</Grid>
</ControlTemplate>
Однако этот подход не работает.
Связывание в ControlPresenter.ContentTemplate
с помощью TemplateBinding
не работает.
Однако, когда я не использую привязку шаблона и не ссылаюсь на шаблон как на статический ресурс, он работает так, как ожидалось.
- Почему я не могу использовать привязку шаблона внутри презентатора контента в datatemplate?
- Что мне здесь не хватает? Требуется ли какая-либо специальная разметка?
- Есть ли способ достичь ожидаемого поведения?
Спасибо заранее.