我想做一個擴展方法它用按鈕填充一個堆疊面板。如何傳遞一個鼠標點擊方法作爲參數?
爲了做到這一點,我必須通過鼠標點擊處理程序。
什麼類型的mouseClickHandler
參數必須在這裏?
我知道這有點像這些,但他們都不起作用:
delegate
Func<object, RoutedEventArgs>
Action<>
代碼:
public static void FillMenuWithPages(this StackPanel spMenu, string menuIdCode,
PagingManager pagingManager, ??????? mouseClickHandler)
{
var menuPageItems = PageItems.GetPageItemsWithMenu(menuIdCode);
spMenu.Children.Clear();
foreach (var pageItem in menuPageItems)
{
var button = new Button();
button.Content = pageItem.Title;
button.Margin = new Thickness { Right = 3 };
button.Tag = pageItem.IdCode;
button.Cursor = Cursors.Hand;
button.Click += new RoutedEventHandler(mouseClickHandler);
if (pageItem.IdCode == pagingManager.CurrentPageItemIdCode)
button.IsEnabled = false;
spMenu.Children.Add(button);
}
}
我會這樣稱呼它:
QuickMenu.FillMenuWithPages("quick", PagingManager, Menu_Button_Click);
,這就是鼠標左撇子:
void Menu_Button_Click(object sender, RoutedEventArgs e)
{
string pageItemIdCode = ((FrameworkElement)sender).Tag.ToString();
PagingManager.SwitchPage(pageItemIdCode);
}
完美,這就是我需要的,謝謝 – 2010-03-10 12:53:20