标签内容绑定

时间:2013-10-28 13:26:11

标签: c# wpf xaml string-formatting

假设我有一个.resx文件,其资源键为GroupBoxHeaderCaption,值为“SomeString”。

然后在我的 ViewModel 中,我有一个名为string的{​​{1}}属性。

我想要实现的是(假设.resx文件引用Description并且视图模型称为using resx = [...]):

viewModel

是否可以在XAML中执行此操作?我得到了这个,但它不起作用:

string.Format("{0}: {1}", resx.GroupBoxHeaderCaption, viewModel.Description)

无法正常工作我的意思是 <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> 红色加下划线,出现错误:

  

成员类型无效:预期类型为'PropertyPath',实际类型为'string'。

我知道我可以为我的GroupBoxHeaderCaption编写一个转换器,但有没有办法完成所有XAML?


当我这样做时,我得到了理想的结果:

viewModel.Description

我想从.resx文件中获取“SomeString:”部分。

1 个答案:

答案 0 :(得分:2)

我刚刚弄清楚你为什么会收到这个错误。这是因为您无法在string的{​​{1}}属性中引用资源Path

我想也许你必须尝试这样的事情:

MultiBinding

不幸的是,我现在无法尝试,我不确定这是否是正确的语法,所以如果您还有其他问题,请回来告诉我。