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);
}
}