我在WPF中动态生成一个组合框,现在,我想用xaml资源文件中的动态值填充组合框,要在组合框中填充的数据存在于两个不同的xaml资源文件中,我想根据用户在应用程序中选择的语言填充组合框。所以," ItemsSource"属性应该根据所选语言动态
我正在尝试使用" SetResourceReference"
cmbCtrl = new ComboBox();
((ComboBox)cmbCtrl).SetResourceReference(ComboBox.ItemsSourceProperty, "to be assigned");
cmbCtrl.DisplayMemberPath = "Value";
cmbCtrl.SelectedValuePath = "Key";
cmbCtrl.ItemsSource = //should be dynamic based on the language selected
cmbCtrl.SelectedIndex = 0;
另外,想了解如何将用于填充组合框的数据放入xaml资源文件的建议
任何建议都表示赞赏,提前谢谢!
答案 0 :(得分:0)
您必须创建一个将combobox
项目保存为字符串的类。
public class StringCollection : ObservableCollection<string> { }
然后在您的资源文件中,您可以将该列表填充为如下资源:
<local:StringCollection x:Key="Language1">
<sys:String>Item 1</sys:String>
<sys:String>Item 2</sys:String>
</local:stringCollection>
<local:StringCollection x:Key="Language2">
<sys:String>Item 1</sys:String>
<sys:String>Item 2</sys:String>
</local:stringCollection>
一旦定义了这些资源,就可以通过在代码中检索这些资源并将它们分配给组合框ItemsSource
属性,轻松填充ComboBox。