Home > WPF > [WPF] DataGridのスクロール制御

[WPF] DataGridのスクロール制御

DataGridでのスクロール位置制御は意外と面倒です。
「DataGridのメソッドを1つ読んで終了!」とはいきません。
 

大まかな手順は次のようになります。

  1. VisualTreeからScrollViewerオブジェクトを取得
  2. ScrollViewerオブジェクトによりスクロール制御

 

VisualTreeからScrollViewerオブジェクトを取得

DataGridのVisualTreeを辿り、ScrollViewerオブジェクトを取得します。
子オブジェクトの取得にはVisualTreeHelperクラスのGetChildメソッドを使用します。

var child = VisualTreeHelper.GetChild(dgTgt, 0) as Decorator;
var scroll = child.Child as ScrollViewer;

 

ScrollViewerオブジェクトによりスクロール制御

取得したScrollViewerオブジェクトを使ってスクロール制御します。
例えば、先頭までスクロール移動したい場合はScrollToTopメソッドを使用します。

scroll.ScrollToTop();

 

サンプルコード

スクロール位置を先頭に移動するサンプルです。

//
// 先頭に移動する。
//
private void ScrollToTop(DataGrid dgTgt)
{
    if (0 < dgTgt.Items.Count)
    {
        //==== ScrollViewerオブジェクト取得 ====//
        var child = VisualTreeHelper.GetChild(dgTgt, 0) as Decorator;
        if (child != null)
        {
            var scroll = child.Child as ScrollViewer;
            if (scroll != null)
            {
                //==== 先頭に移動 ====//
                scroll.ScrollToTop();
            }
        }
    }
}

 
 

関連があると思われる記事:

このエントリーをはてなブックマークに追加
はてなブックマーク - [WPF] DataGridのスクロール制御
Facebook にシェア
[`google_buzz` not found]
[`yahoo` not found]
[`livedoor` not found]
[`friendfeed` not found]
[`tweetmeme` not found]
[`grow` not found]

Comments:0

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://gacken.com/wp/program/wpf/2482/trackback/
Listed below are links to weblogs that reference
[WPF] DataGridのスクロール制御 from ミライニトドケ

Home > WPF > [WPF] DataGridのスクロール制御

Search
Feeds
Meta
人気の記事

Return to page top