我可以使用StaticResource的子对象吗?

时间:2012-02-21 12:15:23

标签: windows-phone-7 xaml staticresource converters

目前在项目之间感觉有点无聊切割和粘贴转换器。

有什么方法可以使用一个转换器作为字段/属性的转换器对象?

e.g。类似的东西:

<Application.Resources>
    <sharedLib:Converters
        x:Key="Converters" />
</Application.Resources>

<TextBlock Text="{Binding Target, Converter={StaticResource Converters.MakeAllCaps}}" />

如果没有,那么是否有人对转换器如何批量导入有任何建议?

1 个答案:

答案 0 :(得分:2)

您可以在资源字典中定义所有转换器,如下所示:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                    xmlns:loc="...">

    <loc:BooleanToVisibilityConverter x:Key="BooleanToVisibility" />
    <loc:MakeAllCapsConverter x:Key="MakeAllCaps" />

    <!-- Define all the common converters here -->
</ResourceDictionary>

现在您可以通过MergedDictionaries在任何地方导入此资源字典,如下所示:

<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="Converters.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>

<TextBlock Text="{Binding Target, Converter={StaticResource MakeAllCaps}}" />