gpt4 book ai didi

c# - 使用 EF 保存后在 MutliSelectComboBox 中显示项目集合的问题

转载 作者:太空宇宙 更新时间:2023-11-03 13:44:09 24 4
gpt4 key购买 nike

我正在创建一个多选 Combobox允许用户从 combobox 中选择多个项目.到目前为止,我已经通过使用 ObservableCollection<string> 实现了这一点。 .我希望能够使用 EntityFramework model 保存此集合我已经做到了,比如

构造函数;

public EmployeeViewModel(DataObjects.Employee e) //Constructor that takes in an employee from EF
: base("")
{
//BenefitsProvided = e.BenefitsProvided; //What I did previously. BenefitsProvided is the field in employee table.

_benefits = new ObservableCollection<string>();
string[] benefit = e.BenefitsProvided.Split(new char[] { ',' }, StringSplitOptions.None);
foreach (var str in benefit)
{
_benefits.Add(str);
}
}

在第一次启动时,我得到一个列表,它允许我看到一个很好的项目列表,我可以从中选择任意数量的项目。但是,当我尝试编辑项目时,在 ComboBox 中它显示这个;

之前;

enter image description here

保存后;

enter image description here

This Link contains my ViewModel and Bindable list

绑定(bind);

 <src:MultiComboBox Grid.Column="1" Grid.Row="9"
SelectionMode="Multiple"
VerticalAlignment="Center"
DisplaySeparator=", "
ItemsSource="{Binding Benefits}"
SelectedItems="{Binding SelectedBenefits}">
</src:MultiComboBox>

我尝试的是而不是采取 ObservableCollection<String>接受了ObservableCollection<OfAClass>像这样;

public class CurrentBenefits
{
private string[] _Allowed = new string[] {"items", "..."};
public string[] Allowed
{
get { return _Allowed; }
set { _Allowed = value; }
}
}

但是当这样做,并改变 <string><CurrentBenefit>它在构造函数周围抛出这个异常;

错误 2 参数 1:无法从“字符串”转换为“...CurrentBenefits”

错误 1 ​​'System.Collections.ObjectModel.Collection<...CurrentBenefits>.Add(...CurrentBenefits)' 的最佳重载方法匹配有一些无效参数

任何人都可以帮助或建议我应该如何解决我遇到的这个问题?提前致谢 :)。

编辑:另外,很抱歉问了这么长的问题。

最佳答案

看完我的作品后,在Maverik的大力帮助下来自 The WPF Room ,这与我的存储库有关。

最初,在存储库中插入和更新项目是这样做的,就像这样;

emp.BenefitsProvided = e.Benefits.ToList().ToString(); 

后来改成了这样;

emp.BenefitsProvided = string.Join(", ", e.SelectedBenefits);

它完美保存并使用户能够看到他们添加的内容:)。

因为它是一个集合,所以我还必须在我的ListView 中更改它以像这样显示项目;

 <GridViewColumn Header="BenefitsProvided" >
<GridViewColumn.CellTemplate>
<DataTemplate>
<ListView Height="24"
ItemsSource="{Binding Benefits}"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridViewColumn>

关于c# - 使用 EF 保存后在 MutliSelectComboBox 中显示项目集合的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15943686/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com