Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法在组合框WPF中使用Multiselect项进行保存_Wpf_Entity Framework_Mvvm_Combobox - Fatal编程技术网

无法在组合框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;