문제

나는 새로운 프로젝트를 시작하려고 할 예정이며 현재 현지화, 모듈성 등을위한 몇 가지 기술을 평가하고 있습니다.

나는 (적어도 내 의견으로는) 현지화에 대한 꽤 좋은 접근 방식을 가지고 있지만 이제는 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 + 위성 어셈블리와 같은 기존 기술을 계속 활용할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top