【发布时间】:2015-04-15 21:03:19
【问题描述】:
我有一些第 3 方控件,我正在为此控件设置模板属性。我在 ControlTemplate 中执行以下操作:
<ItemsControl ItemTemplate="{TemplateBinding ItemTemplate}"
ItemsSource="{Binding Path=Items, RelativeSource={RelativeSource TemplatedParent}}" />
这工作正常。现在,我需要做的是在特定情况下应用 1 个附加模板。这意味着我需要使用 ItemTemplateSelector,我将在其中定义两个模板。
首先,我希望使用 ItemTemplateSelector 获得与使用 ItemTemplate 完全相同的行为(如上面的代码)。
<local:SomeTemplateSelector x:key="a"
DefaultTemplate="{what here}" />
相当于这一行:
ItemTemplate="{TemplateBinding ItemTemplate}"
编辑:这里有一个更详细的用法示例:
<SomeControl>
<SomeControl.Template>
<ControlTemplate TargetType="SomeControl">
<SomeItemsControl ItemTemplate="{TemplateBinding ItemTemplate}"
ItemsSource="{Binding Path=Items, RelativeSource={RelativeSource TemplatedParent}}">
<SomeItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel IsItemsHost="True" />
</ItemsPanelTemplate>
</SomeItemsControl.ItemsPanel>
</SomeItemsControl>
</ControlTemplate>
</SomeControl.Template>
</SomeControl>
【问题讨论】:
标签: wpf wpf-controls datatemplate