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

WPF数据网格-单击按钮时添加项目

问题是您每次都是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, "---"));
}

不过,我建议不要走这条路。查看MVVMDataBindingCommands。理想情况下,您希望创建一个包含绑定到DataGridObservableCollectionViewModel。在该ViewModel内部将有一个命令,该命令将向该ObservableCollection添加项目。