如何从另一个文件中使用IValueConverter实现?

时间:2011-07-03 12:10:08

标签: c# binding ivalueconverter

我已IValueConverter实施 - IconExtractor。我这样用它:

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

但要使其工作,IconExtractor必须驻留在XAML的代码隐藏文件中,例如:我的主窗口是MainWindow.xaml,因此类IconExtractor必须是在MainWindow.xaml.cs。我不能把它放在其他地方吗?

1 个答案:

答案 0 :(得分:3)

您的IValueConverter课程可以在任何您想要的地方,包括在另一个集会中。根据您的使用情况,您需要在MainWindow课程中访问某个资源。一种简单的方法是将它放在窗口资源中。

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

您还可以使用App.xaml中的资源,因为可以从项目中所有基于XAML的类访问其资源。使用App.xaml会吸引我,因为如果项目中的多个窗口使用IconExtractor,您可以避免重复工作。