2016-05-08 11 views
2

私はListBoxの項目ソースにバインドしたFlags Enum値を持っています。私はSelectionModeを複数使用しています。リストボックスの選択したすべての項目をフラグEnumプロパティに割り当てる必要があります。選択したアイテムをどのようにバインドできますか?xamlのリストボックスの複数の選択された項目をバインドする方法

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です。リストボックスの選択したすべての項目を平日にバインドします。

+0

あなたはそれらをプロパティからバインドするか、イベントハンドラで必要としますか? –

+0

@Kylo Ren、Flag-Enum型のプロパティに選択したアイテムをバインドします。 –

+0

次に、独自のカスタムクラスのListBoxを作成する必要があります –

答えて

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]); 
    } 
} 
関連する問題