我用一個字符串數組定義菜單的一部分,我想爲它們中的每一個自動創建點擊事件。他們所有人都將採取相同的行動,只是一個不同的參數。從WPF菜單項創建點擊事件由一個字符串定義的項目
string[] goTos = new string[] { "First", "Second", "Third" };
當初始化窗口:
foreach (string item in goTos)
{
System.Windows.Controls.MenuItem goTo = new System.Windows.Controls.MenuItem();
goTo.Header = item;
goTo.Name = "mnu" + item;
mnuGoTo.Items.Add(goTo);
}
我怎樣才能點擊這些事件?
只需添加事件處理程序並在事件處理程序方法中通過檢查處理程序方法的sender參數來確定哪個MenuItem調用了處理程序。 – Adwaenyth
任何想法如何我可以提取標題? – FanFu
傳遞給您的處理程序方法的'sender'對象是'MenuItem'對象。所以如果你使用'(sender作爲MenuItem).Header',你已經得到了所有你想要的。 (如果處理程序也可能從其他控件調用,則可能需要添加一個空值檢查。) – Adwaenyth