C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: TreeViewのExpandedイベントの動作について


(過去ログ 61 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■34850 / inTopicNo.1)  TreeViewのExpandedイベントの動作について
  
□投稿者/ 倉田 有大 (545回)-(2009/04/12(Sun) 02:23:20)

分類:[.NET 全般] 

2009/04/12(Sun) 02:23:37 編集(投稿者)
こんばんは、倉田 有大です。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace WpfApplication1
{
    /// <summary>
    /// Window1.xaml の相互作用ロジック
    /// </summary>
    public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();
            TreeViewItem item1 = new TreeViewItem();
            item1.Header = "test1";
            item1.Expanded += new RoutedEventHandler(Expanded);
            TreeViewItem item2 = new TreeViewItem();
            item2.Header = "test2";
            item2.Expanded += new RoutedEventHandler(Expanded);
            TreeViewItem item3 = new TreeViewItem();
            item3.Header = "test1";
            item3.Expanded += new RoutedEventHandler(Expanded);
            item1.Items.Add(item2);
            item2.Items.Add(item3);
            this.treeView1.Items.Add(item1);
        }

        public void Expanded(object o, RoutedEventArgs e)
        {
        }
    }
}

ツリービューを開くとExpandedイベントが発生するのですが、クリックして開いたツリービューアイテムだけではなく、その上の開いているツリービューアイテムすべてに
Expandedイベントが発生します。
(上記の例だと、すべて開くと、item1,item2に)

クリックしたツリービューアイテムだけを判断するにはどうすればよいのでしょうか?

毎日質問が続いてすいません_(__)_

引用返信 編集キー/
■34851 / inTopicNo.2)  Re[1]: TreeViewのExpandedイベントの動作について
□投稿者/ 倉田 有大 (546回)-(2009/04/12(Sun) 02:42:28)
ルーティングイベントがバブルだからかーorz どうやってダイレクトに設定するんだろう〜 うわー、なんて余計なお世話の機能!(オイ


Style style = new Style();
style.TargetType = typeof(TreeViewItem);
style.Setters.Add(new EventSetter(TreeViewItem.ExpandedEvent, new RoutedEventHandler(Expanded)));
this.ItemContainerStyle = style;

最終的には上記のルーティングイベントをDirectにかえたいのです。
もうちょっと、ぐぐるかーorz
引用返信 編集キー/
■34853 / inTopicNo.3)  Re[2]: TreeViewのExpandedイベントの動作について
□投稿者/ 倉田 有大 (547回)-(2009/04/12(Sun) 02:54:49)
神様ありがとう
kazuto様、まいどまいどありありがとう。

http://blogs.wankuma.com/kzt/archive/2009/03/24/170149.aspx

e.Handle = trule

で、バブルを止められるんですねT^T 
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -