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
これが表示されます。
前;
保存後;
このリンクには、ViewModel と Bindable リストが含まれています
バインディング;
<src:MultiComboBox Grid.Column="1" Grid.Row="9"
SelectionMode="Multiple"
VerticalAlignment="Center"
DisplaySeparator=", "
ItemsSource="{Binding Benefits}"
SelectedItems="{Binding SelectedBenefits}">
</src:MultiComboBox>
私が試したのは、aaObservableCollection<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: 'string' から '...CurrentBenefits' に変換できません
エラー 1 'System.Collections.ObjectModel.Collection<...CurrentBenefits>.Add(...CurrentBenefits)' に最適なオーバーロードされたメソッドに無効な引数が含まれています
私が抱えているこの問題を解決するために私が何をすべきかを助けたりアドバイスしたりできますか? 前もって感謝します :)。
編集: また、このような長い質問で申し訳ありません。