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";