无法在组合框WPF中使用Multiselect项进行保存
我正在使用无法在组合框WPF中使用Multiselect项进行保存,wpf,entity-framework,mvvm,combobox,Wpf,Entity Framework,Mvvm,Combobox,我正在使用实体框架和MVVM创建应用程序。在我的应用程序中,我有一个组合框,我使用 在这个链接中,这正是我想要实现的。允许用户从组合框中选择多个项目。下面的图片将让您更好地理解我想要创建的内容 到目前为止还不错。但是在我的应用程序中,我将我的属性分配给我的EntityFramework实体中的数据对象,以将数据保存到数据库中 虚拟机构造器 public EmployeeViewModel(DataObjects.Employee e) : base("") {
实体框架
和MVVM
创建应用程序。在我的应用程序中,我有一个组合框
,我使用
在这个链接中,这正是我想要实现的。允许用户从组合框中选择多个项目。下面的图片将让您更好地理解我想要创建的内容
到目前为止还不错。但是在我的应用程序中,我将我的属性
分配给我的EntityFramework
实体中的数据对象,以将数据保存到数据库中
虚拟机构造器
public EmployeeViewModel(DataObjects.Employee e)
: base("")
{
EmployeeID = e.EmployeeID;
Title = e.Title;
FirstName = e.FirstName;
Surname = e.Surname;
Position = e.Position;
}
但与示例web链接一样,combobox绑定到的类型如下:
private Dictionary<string, object> _items;
public Dictionary<string, object> Items
{
get
{
return _items;
}
set
{
_items = value;
OnPropertyChanged("Items");
}
}
错误1无法将类型“string”隐式转换为“System.Collections.Generic.Dictionary”
这就引出了我的问题。我如何将类型Dictionary
分配给员工表中名为BenefitsProvided的类型,即nvarchar?是否有可以使用的转换器
如果我正确理解您的模型,我将非常感谢您提供的任何帮助或替代方法。如果我正确理解您的模型,则提供的属性
福利是一个字符串
,它以逗号分隔的列表中的字符串形式包含员工的各种福利,如“凭证、住宿、医疗”
。在这种情况下,您可以将字符串拆分为子字符串数组,并使用此数组创建字典:
Items=newdictionary();
string[]elements=e.BenefitsProvided.Split(',');
foreach(元素中的var元素)
添加(元素,元素);
或者使用LINQ以更紧凑的形式:
Items=e.BenefitsProvided.Split(',).ToDictionary(s=>s,s=>(object)s);
我在这里假设字典的字符串
键和对象
值都应该是相同的文本。谢谢@Slauma的回复,非常有效,谢谢:)
Items = e.BenefitsProvided;