1.自定义通知类
public class NotifyBase : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public void NotifyChanged([CallerMemberName] string propName = "")
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propName));
}
}
2 .创建动态按钮
Random random = new Random();
for (int i = 0; i < 3; i++)
{
lstBtn.Add(new DataGridItemModel2 { Name = "btn测试-" + i.ToString("00"), Age = random.Next(18, 90), Value = random.Next(30, 120).ToString() });
}
foreach (var actor in lstBtn)
{
CreateDynamicButton(actor.Name, actor.Age);
}
public void CreateDynamicButton(string btnText, int actIndepth)
{
Button btn = new Button();
btn.Content = btnText;
btn.Margin = new Thickness(3, 0, 0, 0);
btn.Padding = new Thickness(3, 0, 0, 0);
//btn.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
//btn.BackColor = Color.FromKnownColor(KnownColor.Control);
btn.Cursor = Cursors.Hand;
btn.Height = 70;
btn.Width = 300;
btn.Tag = actIndepth;
grid.Children.Add(btn);
}
public class DataGridItemModel2:NotifyBase
{
private string _name;
public string Name
{
get { return _name; }
set { _name = value; this.NotifyChanged(); }
}
private int _age;
public int Age
{
get { return _age; }
set { _age = value; this.NotifyChanged(); }
}
public string Value
{
get;
set;
}
}
}
3.试图更改动态创建的按钮显示文本,界面不能更
MainWindow.lstBtn[0].Name = "test";