観測可能なコレクションにデータを挿入し、リストをチェックボックスの形式で表示する単純なビューモデルを作成しました。私はチェックされている項目のリストを取得したいのですが、チェックしないとリストから削除されることはもちろんです。デバッグでは、選択されているオブジェクトが表示されますが、この情報をさらに使用するためにリストに送信するにはどうすればよいですか?リスト内のチェックボックスから選択項目を取得する - C#WPF
public class CheckBoxListItem
{
public bool Checked { get; set; }
public string Text { get; set; }
}
ObservableCollection<CheckBoxListItem> monthlyResults =
new ObservableCollection<CheckBoxListItem>();
public ObservableCollection<CheckBoxListItem> MonthlyResults
{
get { return monthlyResults; }
set
{
monthlyResults = value;
base.OnPropertyChanged("StringList");
}
}
Dictionary<int, CheckBoxListItem> ResultsDict = new Dictionary<int, CheckBoxListItem>();
public List<string> outputlist = new List<string>();
public List<bool> outputyesnolist = new List<bool>();
outputlist.Add("Canon");
outputlist.Add("Sony");
outputlist.Add("Nikon");
outputyesnolist.Add(false);
outputyesnolist.Add(false);
outputyesnolist.Add(false);
for (int j = 0; j < outputlist.Count; j++)
{
CheckBoxListItem list1 = new CheckBoxListItem();
list1.Text = outputlist[j];
list1.Checked = outputyesnolist[j];
ResultsDict[j] = list1;
}
foreach (var value in ResultsDict.Values)
{
model.MonthlyResults.Add(value);
}
XAMLは次のように定義されています。すべてのバインディングが正しく設定されていると仮定すると、
private void CheckBox_Click(object sender, RoutedEventArgs e)
{
var cb = sender as CheckBox;
var item = cb.DataContext;
Listitems.SelectedItem = item;
}