XAML:重构数据模板

本文关键字:数据 重构 XAML | 更新日期: 2023-09-27 18:34:40

我有一个超过 2k 行长的 XAML 文件。我想重构为可管理的部分。

在资源部分,我有一个转换器,可以将枚举转换为数据模板:

        <UserControl.Resources>
            <converters:SomeConverter x:Key="EnumToDataTemplateConverter">
                <converters:SomeConverter.NumericBoxTemplate>
                    <DataTemplate>
                        ... long template description ...
                    </DataTemplate>
                </converters:SomeConverter.NumericBoxTemplate>
            </converters:SomeConverter x:Key="EnumToDataTemplateConverter">
        </UserControl.Resources>

我已经将DataTemplate重构为具有x:Key="xyDataTemplate"的资源字典

我的问题是如何在原始位置创建它?

        <UserControl.Resources>
            <ResourceDictionary>
                <ResourceDictionary.MergedDictionaries>
                    <ResourceDictionary Source="XyTemplate.xaml"/>
                </ResourceDictionary.MergedDictionaries>
            </ResourceDictionary>
            <converters:SomeConverter x:Key="EnumToDataTemplateConverter">
                <converters:SomeConverter.NumericBoxTemplate>
                    ???
                </converters:SomeConverter.NumericBoxTemplate>
            </converters:SomeConverter x:Key="EnumToDataTemplateConverter">
        </UserControl.Resources>

XAML:重构数据模板

如果我们能在转换器中看到属性的声明,这将有所帮助,但现在尝试:

<converters:SomeConverter x:Key="EnumToDataTemplateConverter"
                          NumericBoxTemplate="{StaticResource xyDataTemplate}"/>