locked
Silverlight DataGrid 列ヘッダークリックでヘッダー番号の取得方法 RRS feed

  • 質問

  • お世話になります。

    Silverlight4 VWD2010Express C# で開発しています。

     

    XAMLで複数列ある、DataGridを用意してあります。。

    CanUserReorderColumns は false にしてあります。

     

    このDataGridの列ヘッダー(上の部分)をクリックした時に

    その列の番号 columns[番号] を取得するか、またはそのヘッダーの

    Header を取得して処理したいと考えています。

     

    private void DataGrid_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
    {
                var s = sender as DataGrid;

     

    上記のような方法で左クリック時に、どのヘッダーがクリックされたのか判定するような

    処理が出来ないかと考えています。

    行ヘッダーもあり、行ヘッダーの一番上の部分(左上)は特に処理はなくて良いと考えています。

     

    しかし、その判定方法などはどのようにすれば良いのかわかりません。

     

    列ヘッダーのクリック時に、そのヘッダーの情報を取得する方法はありますでしょうか。

     

    CurrentCellChangedイベントでCurrentColumnでHeaderを見るようなことは出来るのですが

    上記のような場合どのようにするかわかりませんでした。

     

    よろしくお願い致します。

     

     



    2011年9月9日 3:14

回答

すべての返信

  • 以下が参考になると思います。いくつかの解決方法が載っています。

    Datagrid Column Header Clicked Event
    http://forums.silverlight.net/t/133175.aspx/1

    上記のスレッドの一番最後にGetVisualAncestorsメソッドが出てきますが、これは拡張メソッドで、以下が参考になります。

    Windows Phone 7:Tilt Effectを触ってみた
    http://blog.livedoor.jp/coelacanth_blog/archives/2011-05.html?p=2

     


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
    2011年9月9日 4:40
    モデレータ
  • trapemiyaさん

     

    ご回答ありがとうございました。

    返信遅くなりすいませんでした。

     

    MSDNのライブラリ?と言えば良いのか、が見られなくなり

    じっと時を待ってしまいました。

     

    ブラウザのキャッシュをクリアすることで復活しました。

     

    ご紹介頂いた、GetVisualAncestorsメソッドを使用する方法で問題なく動作しました。

     

    本当にありがとうございました。

     


    2011年9月21日 2:28