WPF数据网格-单击按钮时添加项目
本文关键字:按钮 添加 项目 单击 数据 数据网 网格 WPF | 更新日期: 2023-09-27 18:27:40
这是我的代码:但如果有人点击按钮"Einfügen",我会添加值(见代码)。
但这不起作用,只会改变他的价值观!
感谢所有的帮助者!
private void Einfügen_Click(object sender, RoutedEventArgs e)
{
var itemsEnd = new List<Plan>();
itemsEnd.Add(new Plan(LinieZ, Convert.ToString(Kurs.SelectedItem), AbfZ, VonZ, NachZ, AnkZ, "---"));
Plan.ItemsSource = itemsEnd;
}
class Plan
{
public string Linie { get; set; }
public string Kurs { get; set; }
public string Abfahrt { get; set; }
public string Von { get; set; }
public string Nach { get; set; }
public string Ankunft { get; set; }
public string Pause { get; set; }
public Plan(string Linie, string Kurs, string Abfahrt, string Von, string Nach, string Ankunft, string Pause)
{
this.Linie = Linie;
this.Kurs = Kurs;
this.Abfahrt = Abfahrt;
this.Von = Von;
this.Nach = Nach;
this.Ankunft = Ankunft;
this.Pause = Pause;
}
}
问题是您每次都是resetting
ItemsSource
到全新的List
(尺寸为1)。您并没有附加到List
,而是创建了一个只有新项的List
,然后将该List
设置为DataGrid
。
您可以添加一个预定义的列表。
类似于:
private ObservableCollection<Plan> _items = new ObservableCollection<Plan>();
public Window()
{
InitializeComponent();
Plan.ItemsSource = _items;
}
private void Einfügen_Click(object sender, RoutedEventArgs e)
{
_items.Add(new Plan(LinieZ, Convert.ToString(Kurs.SelectedItem), AbfZ, VonZ, NachZ, AnkZ, "---"));
}
不过,我建议不要走这条路。查看MVVM
、DataBinding
和Commands
。理想情况下,您希望创建一个包含绑定到DataGrid
的ObservableCollection
的ViewModel
。在该ViewModel
内部将有一个命令,该命令将向该ObservableCollection
添加项目。