2011-07-03 3 views
1
IValueConverter IValueConverter 구현 - IconExtractor.

다른 파일에서 IValueConverter 구현을 사용하는 방법?

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

그러나 작동하려면 IconExtractor이 XAML의 코드 숨김 파일에 있어야합니다. 예 : 내 주 창이 MainWindow.xaml이므로 클래스 IconExtractorMainWindow.xaml.cs에 있어야합니다. . 나는 그것을 다른 곳에 둘 수 없는가?

답변

3

귀하의 IValueConverter 클래스는 어디서든 할 수 있습니다 당신은 다른 어셈블리에 포함합니다. 귀하의 용도에 따라 MainWindow 클래스의 어딘가에서 리소스에 액세스 할 수 있어야합니다. 쉬운 방법은 당신의 창 자원에서 그것을 가지는 것입니다. 자원 프로젝트의 모든 XAML 기반의 클래스에서 액세스 할 수 있기 때문에

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

또한, App.xaml의 자원을 사용할 수 있습니다. 프로젝트에서 한 개 이상의 창을 IconExtractor를 사용할 경우 나에게 App.xaml 호소를 사용하면 노력을 중복되지 않도록 수 있기 때문이다.

+1

그것은'유형 말을 계속'<내 : IconExtractor 내 '내 : IconExtractor은'나는에 배치'... 찾을 수 없습니다 키 = "theIconExtractor"/>...'이고 클래스는'public class IconExtractor : IValueConverter {...}'입니다. 메인 윈도우와 동일한 네임 스페이스에 있습니다. 내가 뭘 놓치고 있니? 'my' 네임 스페이스가 특정 이름으로 선언되어야합니까? – Tar

+0

주 윈도우의 cs 파일에 클래스 코드 ('C#'코드)를두면 작동합니다. 어째서? – Tar

+0

그것은 지금 작동하는 것 같다 ... 어쩌면 그냥 오타가 – Tar

관련 문제