2017-11-20 8 views
0

ListBox 항목의 출력으로 여러 값을 단일 문자열로 결합하는 다중 바인딩 변환기 (ListItemDescriptionConverter)를 만들었습니다. 그러나 별도의 .cs 파일에서 변환기 클래스를 가리 키도록 리소스 사전을 얻는 방법을 모르겠습니다. 다음 마크 업을 사용할 때 찾을 수 없습니다.리소스 사전 내에서 참조 변환기를 사용하는 방법

변환기 클래스에 액세스하려면 다른 리소스가 필요합니까? Window.Resources 내에 참조를 추가 할 수 없으므로 내 앱 전체에서 스타일을 재사용 할 수 있도록 리소스 사전에 있어야합니다.

+1

'Converter = "{ListItemDescriptionConverter}"는'Converter = "{StaticResourceListItemDescriptionConverter}"이어야합니다. 물론 변환기는 평소와 같이 리소스로 선언해야합니다. 즉, BasicTextStyle에서와 같은 방식으로 리소스를 선언해야합니다. – Clemens

+0

죄송합니다. 코드가 제대로 작동하지 않을 때 실수로 삭제 했어야합니다. 그에 따라 영업 이익을 업데이트했습니다. – ChrisUK

답변

2

당신의 App.xaml 예를 들면, 리소스로 변환을 정의

<MultiBinding Converter="{StaticResource ListItemDescriptionConverter}"> 

다른 옵션이다 :

<Application x:Class="WpfApplication1.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:WpfApplication8" 
      StartupUri="MainWindow.xaml"> 
    <Application.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="Skins\DefaultSkinDictionary.xaml"/> 
     </ResourceDictionary.MergedDictionaries> 
     <local:ListItemDescriptionConverter x:Key="ListItemDescriptionConverter" /> 
    </ResourceDictionary> 
    </Application.Resources> 
</Application> 

당신은 다음 StaticResource 태그 확장과 x:Key를 사용하여 참조 할 수 있습니다 요소 구문을 사용하여 Converter 속성을 변환기 클래스의 인스턴스로 설정하십시오.

<MultiBinding> 
    <MultiBinding.Converter> 
     <local:ListItemDescriptionConverter /> 
    </MultiBinding.Converter> 
</MultiBinding> 
+0

감사합니다.하지만 Application.Resources 내에 이 이미있는 경우 어떻게 작성합니까? 미안하지만, 난 아직도이게 아주 새로운거야. – ChrisUK

+0

내 대답을 편집했습니다. 그게 도움이 되니? – mm8

+0

예 디자인 시간 오류가 없어지면 그것이 내가 생각하는 것입니다. 불행히도 지금은 "응용 프로그램을 실행할 때"처리되지 않은 예외 'System.Windows.Markup.XamlParseException'이 PresentationFramework.dll에서 발생했습니다. "그러나이 스레드에서 제기 된 문제와 관련이 없을 수 있습니다. 당신의 대답을 수락하십시오. 감사. – ChrisUK