2012-03-24 22 views
1

私は別の項目を追加するメニュー項目を持っています。今私はその新しく追加された項目にクリックイベントを割り当てたいと思う。どうすればこのことができますか?以下はメニュー項目の追加方法です。新しく追加されたメニュー項目のクリックイベント

MI.Items.Add(System.IO.Path.GetFullPath(ofd.FileName)); 

答えて

1

MenuItemクラスの新しいインスタンスを作成し、Clickイベントにサブスクライブしてください:

MenuItem newMenuItem = new MenuItem(); 
newMenuItem.Header = System.IO.Path.GetFullPath(ofd.FileName); 
newMenuItem.Click += MenuItemOnClick; // The handler. 
MI.Items.Add(newMenuItem); 
0

Add項目のインデックスを示す整数が追加され、あなたは、このインデックスを使用したコレクションの要素にアクセスするため、イベントを購読することができ返すので、あなたはこのような何かをしなければならないでしょう。

var index = MI.Items.Add(System.IO.Path.GetFullPath(ofd.FileName)); 
((UIElement)MI.Items.GetItemAt(index)).MouseLeftButtonUp += OnMenuItemMouseUp; 

void OnMenuItemMouseUp (object sender, MouseButtonEventArgs e) { 

} 
0

は、そのインデックスでMenuItemを取得し、+=構文を使用してイベントハンドラをアタッチ:

int itemIndex = MI.Items.Add(System.IO.Path.GetFullPath(ofd.FileName)); 
MenuItem item = MI.Items[itemIndex] as MenuItem; 
item.Click += new RoutedEventHandler(Item_Click); 
関連する問題