none
グループ化したヘッダにボタンを配置したイベントの取得について RRS feed

  • 質問

  • いつもお世話になっております。

    WPFのListViewにCollectionViewSourceを使って、Expanderを利用したグループ化したリストがあります。

    これに、グループ化した行(Expanderの行)にボタンを配置して下位のデータ(1レコード分)を使った処理をしたいと思います。

    ・グループ化した行にボタンを配置して、下位のデータを取得することは可能でしょうか?

    よろしくお願いします。

     

    2011年11月28日 4:44

回答

  • CollectionViewGroupクラスがバインドしていると思いますので、そのItemsプロパティを見ればグループの明細が取れます。よってそれをコマンドパラメータで渡して処理をすれば良いのではないでしょうか?

     


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
    • 回答としてマーク yuu_mori 2011年11月28日 8:48
    2011年11月28日 5:09
    モデレータ
  • 回答ありがとうございます。

    CollectionViewGroupクラスを手がかりに思うような動作が出来ました。

    フルMVVMであればコマンドのパラメータで出来ると思いますが、イベントハンドラで処理したかったので下記コードにしました。

    今後参考される方用にコードを紹介します。

            private void HeaderButton_Click(object sender, RoutedEventArgs e)
            {
                var item = ListView.ContainerFromElement((DependencyObject)e.OriginalSource) as GroupItem;

                if (item != null)
                {
                    var collectionViewGroup = item.Content as CollectionViewGroup;
                    viewModel.listGroupSelected(collectionViewGroup.Items);
                }
            }

    • 回答としてマーク yuu_mori 2011年11月28日 8:48
    2011年11月28日 8:47

すべての返信

  • CollectionViewGroupクラスがバインドしていると思いますので、そのItemsプロパティを見ればグループの明細が取れます。よってそれをコマンドパラメータで渡して処理をすれば良いのではないでしょうか?

     


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
    • 回答としてマーク yuu_mori 2011年11月28日 8:48
    2011年11月28日 5:09
    モデレータ
  • 回答ありがとうございます。

    CollectionViewGroupクラスを手がかりに思うような動作が出来ました。

    フルMVVMであればコマンドのパラメータで出来ると思いますが、イベントハンドラで処理したかったので下記コードにしました。

    今後参考される方用にコードを紹介します。

            private void HeaderButton_Click(object sender, RoutedEventArgs e)
            {
                var item = ListView.ContainerFromElement((DependencyObject)e.OriginalSource) as GroupItem;

                if (item != null)
                {
                    var collectionViewGroup = item.Content as CollectionViewGroup;
                    viewModel.listGroupSelected(collectionViewGroup.Items);
                }
            }

    • 回答としてマーク yuu_mori 2011年11月28日 8:48
    2011年11月28日 8:47