转换项目使用标记方法获取ComboBox

时间:2015-05-21 16:56:21

标签: c# wpf combobox

我有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

1 个答案:

答案 0 :(得分:1)

删除BindingSourceItemsSource应直接为GenderMgr.GetGendersDropDown(true),即字典。其他一切看起来都不错。

至于转换为标记:在某些时候你需要从某个地方获取对象,所以除了可能使用ObjectDataProvider在XAML中调用相应的数据提供方法之外,你无能为力。通常你会有一些属性来保存视图模型中的项目,ItemsSource然后仍然可以绑定在XAML中;只要视图模型支持更改通知,就可以在数据可用的任何时刻分配属性。