0

我想知道如何制作一个ArrayButtons每一个Button都有其特定的内容、位置和最重要的动作。据我所知,这样做的方法是:

for (int i = 0; i < n; i++)
{             
    _arr[i] = new Button();
    _arr[i].Height = 25;
    _arr[i].Width = 25;
    _arr[i].Content = Convert.ToString(randomnumber);

    _arr[i].Margin = new Thickness(30,0,150,0);
    _arr[i].Click += (a, b) =>
    { 
        do something
    } 
}

所以我的实际问题是:有没有更好的方法来做到这一点?

4

2 回答 2

0

将您的按钮放在 aStackPanel或 aGrid或 anyPanel中,并处理ButtonBase.Click此面板的事件。所以只有一个事件处理程序。在事件处理程序中,您可以将OriginalSourceRoutedEventArg转换为按钮,然后使用其在数组中的索引、其内容、名称或标签来标识该按钮。

于 2013-05-19T21:43:45.137 回答
0

您可以创建MyButton包含WidthHeightContentIsDefault其他您认为有用的东西的类。放置ItemsControl控制,绑定ItemsSource到您的List<MyButton>,您可以样式ItemsPanel应用您的DataTemplate. 动作也可以通过Command类中的每个按钮绑定,或者你可以有一个动作,在其中检查哪个按钮被按下并做出反应。

于 2013-05-19T21:28:01.660 回答