ListBox 컨트롤과 비슷한 것으로 식별 할 수있는 컨트롤이 있습니다. 각 항목은 하나의 요소 (예 : TextBlock)로 나타납니다. 내가 원하는 것은이 항목의 레이아웃을 변경하여 두 개의 TextBlock을 포함하도록하는 것입니다. 그래서 ControlTemplate을 만들고, Border Grid, TwoTextBlocks를 넣고, 모두 잘합니다. 이제 문제 : 나는 항목의 텍스트를 현지화 할 수 있어야합니다속성에 바인딩 확장 구현
, 나는 다음과 같이 일반적으로 이런 짓을 :
<... Text="{Binding Strings.SomeString, Source={StaticResource ApplicationResources}}" />
이 지금은 모두 TextBlocks와 동일한 기능을 수행 할 수 있어야합니다. 그래서이 항목이 바인딩 할 사용자 지정 형식을 만들어야하고 두 가지 속성 (제목 및 설명)을 노출해야한다고 생각했습니다. 이 속성을 문자열 유형으로 노출하면 모든 것이 정상적으로 작동하지만 이전에 사용한 마크 업 바인딩이 느슨해졌습니다. 두 속성을 사용하여 동일한 결과를 얻는 방법? 내가 ResourcemManager 클래스와 현지화 작업을 할 수 있었다
<... Title="{Binding Strings.SomeString, Source={StaticResource ApplicationResources}}", Description="{Binding Strings.AnotherString, Source={StaticResource ApplicationResources}}" />
하지만, 런타임에 동적으로 적용되는 현지화를 제공하기 위해도 복잡해진다 : 같은 결과는해야한다.
위의 코드를 사용하려면 어떻게해야합니까? 그런 다음 ApplicationResource에 INotifyPropertyChanged를 구현하면 모든 것이 설정됩니다.
안녕 dBear 도움이 될 희망하지만 접근 방식을 좋아하지 않아,이입니다 장소. 내 접근 방식은 약간 다르지만 LocalizationResource라는 다른 속성을 도입했습니다. 따라서 Text에는 키 또는 일반 텍스트 만 포함됩니다. 그러나 여전히 표준이 깨지기 때문에 내가 선호하는 해결책이 아닙니다. – Goran