WPF 클래스의 기본 ValueConverter
문제
나는 새로운 프로젝트를 시작하려고 할 예정이며 현재 현지화, 모듈성 등을위한 몇 가지 기술을 평가하고 있습니다.
나는 (적어도 내 의견으로는) 현지화에 대한 꽤 좋은 접근 방식을 가지고 있지만 이제는 Databinding을위한 좋은 솔루션을 찾기 위해 고군분투합니다.
텍스트 필드 등의 값 (일반적으로 uielements)을 양식의 데이터 컨텍스트의 특정 방법에 바인딩하고 싶습니다. 이 방법은 다음과 같습니다.
public void GetValue(string name)
여기서 이름은 "노드/서브 노드/서브 서브 노드"형태의 "경로"입니다. 나는 바인딩을 위해 ValueConverter를 사용하는 것에 대해 생각했고 지금까지 꽤 잘 작동했습니다.
내 바인딩 표현은 다음과 같습니다.
{Binding Path=Localization, Converter={StaticResource LocalizationConverter}, ConverterParameter=PrismBreak/Shell.xaml/New}
나는이 구속력있는 표현이 일을 수행하지만 모든 단일 uelement에 사용하기에 약간의 날씨가 느려진다고 생각합니다. 따라서 특정 유형에 대해 기본 ValueConverter를 정의 할 수 있다고 생각했다고 생각했습니다 (-> 해당 유형이 ValueConverter가 사용되는 곳에 묶일 때마다).
WPF에서 가능합니까?
불가능한 경우 동적 매개 변수가있는 메소드에 바인딩하는 다른 좋은 방법이 있습니까?
미리 감사 드리며 안부 여부,
크리스
해결책
WPF를 위해 현지화하는 규정 된 방법은 위성 어셈블리에서 현지화 된 BAML을 만드는 것입니다. 이것은 추가하여 달성됩니다 X : uid 현지화되기를 원하는 요소에 첨부 된 속성. 좋은 것이 있습니다 WPF 세계화 및 Localizatio기술을 설명하는 MSDN 섹션.
내가 제안하는 또 다른 접근법은 정적 '현지화 사전'유형을 만들고 구현하는 것입니다. iCustomtypedescriptor, 들어오는 속성을 리디렉션하는 것은 사전의 현에 바인딩됩니다. 당신은 다음과 같은 일을 할 수 있습니다.
<Button Content="
{Binding Source={x:Static local:MyStaticType.Localization},
Path=HelloButtonTitle}" />
또한 ROSX + 위성 어셈블리와 같은 기존 기술을 계속 활용할 수 있습니다.