【发布时间】:2016-05-15 00:05:04
【问题描述】:
我正在设计一个内部有 256 个按钮的应用程序,并使用 for 循环将它们添加到 C# 代码中的 WrapPanel 中。 XAML 代码中未提及这些按钮。 我的问题是,当单击其中一个时,我必须使用绑定更改其颜色。 我尝试了以下代码,但它不起作用(仅更改按钮的内容):
private void NewButton_Click(object sender, RoutedEventArgs e)
{
Button btn = (Button)sender;
for (int i = 0; i < counter; i++)
{
if (btn.Name == ("Butt" + i))
{
btn.Content = "works";
MyData mydata = new MyData();
Binding binding = new Binding("Color");
binding.Source = mydata;
binding.Source = btn;
break;
}
}
}
和
private int counter = 0;
public class MyData
{
public static Brush _Color = Brushes.Red;
public Brush Color
{
get
{
return _Color;
}
}
}
public MainWindow()
{
InitializeComponent();
int num = number(3);
List<Button> btnList = new List<Button>();
for(int i =0; i<(num*num); i++)
{
Button button = new Button();
button.Name = "Butt" + counter;
button.Content = "New";
counter++;
button.Height = 35;
button.Width = 35;
button.Click += new RoutedEventHandler(NewButton_Click);
wp.Children.Add(button);
}
【问题讨论】: