Могу ли я использовать подобъекты StaticResource? - PullRequest
1 голос
/ 21 февраля 2012

Чувствую себя немного скучно из-за обрезки и вставки конвертеров между проектами в данный момент.

Можно ли как-нибудь использовать один объект Converters, у которого в качестве полей / свойств есть конвертеры?

например. что-то вроде:

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

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

Если нет, то есть ли у кого-нибудь предложения о том, как конвертеры могли бы быть импортированы в массовом порядке?

1 Ответ

2 голосов
/ 21 февраля 2012

Вы можете определить все ваши конвертеры в словаре ресурсов следующим образом:

<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}}" />
...