Как использовать реализацию IValueConverter из другого файла? - PullRequest
1 голос
/ 03 июля 2011

У меня есть IValueConverter реализация - IconExtractor.Я использую это следующим образом:

<Image Source="{Binding Converter={StaticResource iconExtractor},
                        ConverterParameter=c:\\Windows\\System32\\shell32.dll|72}"/>

Но для того, чтобы он работал, IconExtractor должен находиться в файле кода XAML, например: мое главное окно - MainWindow.xaml, поэтомукласс IconExtractor должен быть в MainWindow.xaml.cs.Я не могу разместить его в другом месте?

1 Ответ

3 голосов
/ 03 июля 2011

Ваш класс IValueConverter может быть где угодно, в том числе и в другой сборке. В зависимости от вашего использования вам нужен ресурс, доступный из вашего класса MainWindow. Проще всего это сделать в своих ресурсах окна.

<MainWindow.Resources>
    <my:IconExtractor x:Key="iconExtractor"/>
</MainWindow.Resources>

Вы также можете использовать ресурсы в App.xaml, так как его ресурсы доступны из всех классов на основе XAML в вашем проекте. Использование App.xaml привлекает меня, поскольку вы можете избежать дублирования усилий, если более одного окна в вашем проекте будет использовать IconExtractor.

...