将内容模板移动到WPF中的资源

时间:2017-12-21 12:31:08

标签: wpf xaml

尝试将样式/内容模板移动到XAML的资源以获得更好的概述。 我无法将此内容模板移动到资源 我想我还没有围绕WPF模板结构。

<controls:CheckCombo 
    Items="{Binding Brands}"
    SelectedItems="{Binding SelectedBrands}"
    DisplayMemberPath="Name">
    <controls:CheckCombo.ButtonContentTemplate>
        <DataTemplate>
            <StackPanel Width="80" Height="30" />
        </DataTemplate>
    </controls:CheckCombo.ButtonContentTemplate>
</controls:CheckCombo>

我想把它移到与此类似的XAML资源的开头。

<UserControl.Resources>
    <ResourceDictionary>
        <DataTemplate x:Key="BrandFilterButtonContentTemplate" DataType="controls:CheckCombo">
            <StackPanel Width="80" Height="30" />
        </DataTemplate>
    </ResourceDictionary>
</UserControl.Resources>

2 个答案:

答案 0 :(得分:0)

我们必须在Control中使用Datatemplate

<controls:CheckCombo 
Items="{Binding Brands}"
SelectedItems="{Binding SelectedBrands}"
ItemTemplate="{StaticResource BrandFilterButtonContentTemplate}"
DisplayMemberPath="Name">

data-templating-overview

答案 1 :(得分:0)

感谢评论,结果就是这样。

资源:

<UserControl.Resources>
    <ResourceDictionary>
        <DataTemplate x:Key="BrandFilterButtonContentTemplate" DataType="controls:CheckCombo">
            <StackPanel Width="80" Height="30" />
        </DataTemplate>
    </ResourceDictionary>
</UserControl.Resources>

在控制中:

<controls:CheckCombo 
    Items="{Binding Brands}"
    SelectedItems="{Binding SelectedBrands}"
    DisplayMemberPath="Name"
    ButtonContentTemplate="{BrandFilterButtonContentTemplate}" />
</controls:CheckCombo>