■ TreeView 클래스 : 노드 확장시 Cursors.Wait 사용하기

----------------------------------------------------------------------------------------------------

using System.Windows;

using System.Windows.Controls;

using System.Windows.Input;

 

#region 윈도우 로드시 처리하기 - Window_Loaded(sender, e)

 

/// <summary>

/// 윈도우 로드시 처리하기

/// </summary>

/// <param name="sender">이벤트 발생자</param>

/// <param name="e">이벤트 인자</param>

private void Window_Loaded(object sender, RoutedEventArgs e)

{

    this.treeView.AddHandler(TreeViewItem.ExpandedEvent,  new RoutedEventHandler(treeViewItem_Expanded));

 

    this.treeView.AddHandler(TreeView.MouseUpEvent, new RoutedEventHandler(treeView_MouseUp), true);

}

 

#endregion

 

#region 트리 뷰 항목 확장시 처리하기 - treeViewItem_Expanded(sender, e)

 

/// <summary>

/// 트리 뷰 항목 확장시 처리하기

/// </summary>

/// <param name="sender">이벤트 발생자</param>

/// <param name="e">이벤트 인자</param>

private void treeViewItem_Expanded(object sender, RoutedEventArgs e)

{

    TreeViewItem treeViewItem = e.OriginalSource as TreeViewItem;

 

    if(treeViewItem == null)

    {

        return;

    }

    

    if(treeViewItem.ItemContainerGenerator.Status == System.Windows.Controls.Primitives.GeneratorStatus.ContainersGenerated)

    {

        return;

    }

 

    if(treeViewItem.Items.Count >= 1000)

    {

        Cursor = Cursors.Wait;

    }

}

 

#endregion

 

#region 트리 뷰 마우스 업시 처리하기 - treeView_MouseUp(sender, e)

 

/// <summary>

/// 트리 뷰 마우스 업시 처리하기

/// </summary>

/// <param name="sender">이벤트 발생자</param>

/// <param name="e">이벤트 인자</param>

private void treeView_MouseUp(object sender, RoutedEventArgs e)

{

    Cursor = Cursors.Arrow;

}

 

#endregion

----------------------------------------------------------------------------------------------------

Posted by 사용자 icodebroker
TAG