리소스 키가 GroupBoxHeaderCaption
이고 값이 "SomeString"인 .resx 파일이 있다고 가정 해 봅니다.레이블 내용 바인딩
내 에서 ViewModel 나는 Description
이라는 string
속성이 있습니다.
string.Format("{0}: {1}", resx.GroupBoxHeaderCaption, viewModel.Description)
는 XAML에서이 작업을 수행 할 수 있습니다 :
는 내가 달성하고자하는 것은이 (주어진 된 .resx 파일이 using resx = [...]
로 언급되고 뷰 모델 viewModel
라고합니다)인가? 나는이를 얻었으나, 제대로 동작하지 않습니다 : 으로
<GroupBox Margin="4">
<GroupBox.HeaderTemplate>
<DataTemplate>
<Label>
<Label.Content>
<MultiBinding StringFormat="{}{0}: {1}">
<Binding Path="{x:Static my:MyResources.GroupBoxHeaderCaption}" />
<Binding Path="viewModel.Description" />
</MultiBinding>
</Label.Content>
</Label>
</DataTemplate>
</GroupBox.HeaderTemplate>
가 내 말 내가 얻을 작동하지 GroupBoxHeaderCaption
빨간색 밑줄라는 오류 :
잘못된 회원 유형 : 예상 타입 '입니다 PropertyPath '이고 실제 유형은'string '입니다.
나는 내 viewModel.Description
에 대한 변환기를 작성할 수 알지만,이 모든 XAML을 할 수있는 방법은 무엇입니까? 의 .resx 파일에서 일부 :
<GroupBox Margin="4" Header="{Binding viewModel.Description}"
HeaderStringFormat="SomeString: {0}">
내가 "SomeString을"가져 오려는 :이 작업을 수행 할 때
내가 원하는 결과를 얻을.
Visual Studio의 리소스 디자이너 창에서'Access Modifier' 속성을'Public'으로 설정 했습니까? 리소스를 공개적으로 액세스 할 수있게 만들었습니까? – Sheridan
네, 절대적으로 - 저는이 리소스 파일을 아무 문제없이 XAML의 다른 곳에서 사용하고 있습니다. 단지 리소스 모델을 뷰 모델 속성과 결합하고 싶습니다. 바인딩 StringFormat이이를 수행 할 수 있는지 궁금합니다. 마치 문자열 *을 처리 할 수없는 것처럼 보입니다. 문자열 * 속성 *이 필요합니다. ... –
'StringFormat = "{} Cost : {0}"'- 우물 같은 것을주는 예제와 같습니다. .resx 파일에서 "비용 :"부분을 가져 오십시오. –