3

リストボックスの項目ソースにバインドした Flags Enum 値があります。マルチで使用SelectionModeしています。リストボックスの選択されたすべての項目をフラグ Enum プロパティに割り当てたいと思います。選択したアイテムをバインドするにはどうすればよいですか?

private void ListBox_SelectionChanged(object sender,SelectionChangedEventArgs e)
{
    ListBox list = sender as ListBox;

    this.Weekdays=list.SelectedItems.GetType().GetEnumValues().GetEnumerator()      
                                                    as Weekdays;

}

ここで weekdays は、タイプ Weekdays の Flags-Enum です。リストボックスの選択されたすべての項目を Weekdays にバインドしたいと思います。

4

1 に答える 1

1

以下のコードだけで十分です。複数選択モードが選択されている場合、list.SelectedItemsには選択されたすべての項目が含まれます。リストの選択変更イベント中にそれらを追跡できます。値を列挙型に割り当てることはできません。代わりに、リストを作成し、そのリストを使用して、リスト ソースと同じデータ クラスを使用して、選択したアイテムを格納します。

private List<DataClass> SelectedItemsList = new List<DataClass>();

if (list.SelectedItems.Count >= 0)
{
    for (int i = 0; i < list.SelectedItems.Count; i++)
    {
        SelectedItemsList.Add(list.SelectedIndices[i]);
    }
}
于 2016-05-08T08:00:28.880 に答える