0

データベースのデータを階層的に表示するツールを開発しています。各アイテムには追加のデータがあるため、TreeListViewコントロールを使用してそれらを追加の列に表示しています。列の数は、ユーザー入力によって決定されます。

私が使用しているカスタムコントロールはRicciolosTreeListViewです: http ://windowsclient.net/blogs/ricciolocristian/archive/2008/03/22/a-complete-wpf-treelistview-control.aspx

私の問題は、並べ替えロジックを適用するためにColumnHeaderClickイベントをキャッチする必要があることです。私はすでに叔母のグーグルにインタビューしましたが、結果はありません。たぶん、ここの誰かがそのようなイベントを見つける場所と、どの列ヘッダーがクリックされたかを判断する方法を知っています。

ありがとう

4

1 に答える 1

0

GridViewColumnHeader.Clickイベントのハンドラーを追加する必要があります。この投稿では、同じ基になるコントロールを使用するListViewに対してこれを行う方法について説明します。このコードは、そのリンクから改作されました。

myTreeListView.AddHandler(GridViewColumnHeader.ClickEvent, new RoutedEventHandler(this.OnGridViewColumnHeaderClicked));

private void OnGridViewColumnHeaderClicked(object sender, RoutedEventArgs e) {
    MessageBox.Show("testing");
}

または、次のようにXAML経由でハンドラーをアタッチできます。

<my:TreeListView GridViewColumnHeader.Click="OnGridViewColumnHeaderClicked" />

e.OriginalSourceにはGridViewColumnHeaderが含まれ、e.Source/senderはTreeListViewになります。

于 2011-03-24T11:30:05.307 に答える