wpf разделяет параметры файла ResourceDictionary? - PullRequest
0 голосов
/ 01 июля 2010

, если все стили и конвертеры хранятся в файле словаря общих ресурсов (styles.xaml), и этот файл используется из различных окон.

Возможно ли передать параметр в этот файл и передать этот параметр преобразователям?

Я ищу способ передачи параметра типа "origin" , чтобы преобразователи могли знать, откуда они используются?Просто намек на то, какое окно / сетка использует конвертер в данный момент ..

Ответы [ 2 ]

0 голосов
/ 01 июля 2010

Интересно, сработает ли что-то подобное:

Добавьте ссылку на пространство имен System в объявлении каждого Window или UserControl, где вы хотите это.

     xmlns:sys="clr-namespace:System;assembly=mscorlib"

Затем в разделе ресурсов настройте такие вещи:

<Window.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="styles.xaml"/>
        </ResourceDictionary.MergedDictionaries>
            <sys:String x:Key="WinConvertParam">IDTextForThisWindow</sys:String>
    </ResourceDictionary>
</Window.Resources>

Ваш синтаксис привязки может выглядеть примерно так:

{Binding SomeProperty, 
         Converter={StaticResource thatConverterIWrote}, 
         ConverterParameter={StaticResource WinConvertParam}}

... и ваши методы Convert или ConvertBack в ваших классах преобразования затем узнают об используемом ими Окне, при условии, что вы изменяете значение этого <sys:String/> от файла к файлу.

Что вы думаете?

0 голосов
/ 01 июля 2010

См. Эту статью для преобразователей с параметрами. Я предполагаю, что вы определяете ресурс конвертера в словаре ресурсов.

http://www.switchonthecode.com/tutorials/wpf-tutorial-binding-converters

...