比方說,我有一個資源密鑰GroupBoxHeaderCaption
和值「SomeString」.resx文件。我有string
屬性Description
。標籤內容綁定
我想實現的是這個(給.resx文件與using resx = [...]
稱爲並且以視圖模型被稱爲viewModel
):
string.Format("{0}: {1}", resx.GroupBoxHeaderCaption, viewModel.Description)
是否有可能做到這一點在XAML?我得到了這一點,但它不工作:
<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?
我得到期望的結果當我這樣做:
<GroupBox Margin="4" Header="{Binding viewModel.Description}"
HeaderStringFormat="SomeString: {0}">
我想取 「SomeString:」 部分從.resx文件。
您是否在Visual Studio的資源設計器窗口中將'Access Modifier'屬性設置爲'Public',例如:使您的資源可公開訪問? – Sheridan
是的,絕對 - 我在XAML的其他地方使用這個資源文件沒有任何問題,它只是我想結合資源字符串與視圖模型屬性,我想知道如果綁定StringFormat可以做到這一點。它看起來像它不會工作*字符串*,它需要一個字符串*屬性* ... –
這就像在這些例子中,他們給了像'StringFormat =「{} Cost:{0}」' - - 好我希望從「.resx」文件中提取「Cost:」部分。 –