C# 使用方法将组合框中的项目源转换为标记

C# 使用方法将组合框中的项目源转换为标记,c#,wpf,combobox,C#,Wpf,Combobox,我有一个组合框 <ComboBox x:Name="SearchGendersComboBox" Grid.Row="3" Grid.Column="1" IsEditable="True" SelectedValuePath="Key" DisplayMemberPath="Value"

我有一个
组合框

<ComboBox x:Name="SearchGendersComboBox" Grid.Row="3" Grid.Column="1"
                          IsEditable="True"
                          SelectedValuePath="Key"
                          DisplayMemberPath="Value"
                          SelectedValue="{Binding Path=GenderId}"

                          />
这是
GenderMgr

public class GenderMgr
{

    public static Dictionary<byte, string> GetGendersDropDown(bool isFilterMode = false)
    {
        return GenderDb.RetrieveGendersDropDown(isFilterMode);
    }

}
公共类GenderMgr
{
公共静态字典GetGendersDropDown(bool isFilterMode=false)
{
返回GenderDb.RetrieveGendersDropDown(isFilterMode);
}
}

如何在标记中使用我的
GenderMgr.GetGendersDropDown
填充
组合框

删除
BindingSource
项源
应该直接是
GenderMgr.GetGendersDropDown(true)
,即字典。其他一切看起来都很好


至于到标记的转换:在某些时候,您需要从某处获取对象,因此除了使用
ObjectDataProvider
调用XAML中的相应数据提供方法之外,您可以做的事情不多。通常您会有一些属性来保存视图模型中的项,
ItemsSource
仍然可以绑定到XAML中;只要视图模型支持更改通知,那么就可以在数据可用的任何时候分配属性。

您不会在WPF应用程序中使用
System.Windows.Forms.BindingSource
。从这里开始阅读:,尤其是“与收藏的绑定”一章。
public class GenderMgr
{

    public static Dictionary<byte, string> GetGendersDropDown(bool isFilterMode = false)
    {
        return GenderDb.RetrieveGendersDropDown(isFilterMode);
    }

}