2016-05-02 4 views
0

Listviewに複数のSelectionModeを使用してコマンドを処理する方法は? 2に ListViewコントロールのItemsSourceはのObservableCollection(EFテーブル)に結合していると私は選択の上限を設定しました:複数のSelectionModeを使用したListViewの選択に基づいてコマンドを実行

<ListView ItemsSource="{Binding EmployeeViewM.MainActivity}" 
         SelectionMode="Multiple" 
         IsSynchronizedWithCurrentItem="True" 
         HorizontalAlignment="Right" 
         BorderBrush="{x:Null}" 
         Background="{x:Null}" 
         VirtualizingPanel.IsVirtualizing="True" 
         VirtualizingPanel.IsContainerVirtualizable="True"        
         VirtualizingPanel.IsVirtualizingWhenGrouping="True" 
         VirtualizingPanel.ScrollUnit="Item" 
         VirtualizingPanel.VirtualizationMode="Standard"> 

<I:Interaction.Behaviors> 
    <limit:LimitSelectionBehavior Limit="2"/> 
</I:Interaction.Behaviors> 

私が選択している項目の数に基づいて、コマンド(RelayCommand)を実行したいと思います。次のようなもの:

If SelectItems.Count = 1 Then 
     'Get first item selected 
     'Save to the database to table 1 
     'Start Timer_01 
    ElseIf SelectItems.Count = 2 Then 
     'Get last selected item 
     'Save to the database to table 2 
     'Start Timer_02 
    End If 

ここで複数の選択を処理するにはどうすればよいですか? 提案ありがとうございました

答えて

0

リストビューの選択変更イベントを取得し、リストを繰り返して、どのアイテムが選択されているかを確認します。以下のサンプルコードを確認してください!

public void Selection_Changed(object sender, EventArguments arg) 
{ 
    List<DataClass> selectedItems = new List<DataClass>(); 

    foreach(DataClass item in LISTVIEWNAME.SelectedItems) 
    { 
    selectedItems.Add(item); 
    } 
} 

selectedItemsのは、リストビューで選択されたリスト項目のリストを持っています。あなたはそれを持っていますように!

+0

ありがとうございました! MVVMでこれをどうやってやるの? – ViVi

+0

はい。 MVVMアーキテクチャを使用している場合は、リストビューのSelectionChangedイベントをビューモデルのコマンドにバインドできます。 – ViVi

+0

あなたがポイントを持っていれば、私の答えを正解とマークして、同じ問題を抱えている人を助けるようにしてください。 – ViVi

関連する問題