我有ComboBox
<ComboBox x:Name="SearchGendersComboBox" Grid.Row="3" Grid.Column="1"
IsEditable="True"
SelectedValuePath="Key"
DisplayMemberPath="Value"
SelectedValue="{Binding Path=GenderId}"
/>
我正在填写:
public void BindComboBoxes()
{
SearchGendersComboBox.ItemsSource = new BindingSource(GenderMgr.GetGendersDropDown(true), null);
SearchGendersComboBox.SelectedIndex = 0;
}
这是GenderMgr
:
public class GenderMgr
{
public static Dictionary<byte, string> GetGendersDropDown(bool isFilterMode = false)
{
return GenderDb.RetrieveGendersDropDown(isFilterMode);
}
}
如何在标记中使用ComboBox
来填充GenderMgr.GetGendersDropDown
答案 0 :(得分:1)
删除BindingSource
,ItemsSource
应直接为GenderMgr.GetGendersDropDown(true)
,即字典。其他一切看起来都不错。
至于转换为标记:在某些时候你需要从某个地方获取对象,所以除了可能使用ObjectDataProvider
在XAML中调用相应的数据提供方法之外,你无能为力。通常你会有一些属性来保存视图模型中的项目,ItemsSource
然后仍然可以绑定在XAML中;只要视图模型支持更改通知,就可以在数据可用的任何时刻分配属性。