WPF DataGrid - 单击按钮时添加项目

时间:2015-12-21 15:58:45

标签: c# wpf button datagrid

这是我的代码: 但如果有人点击按钮“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;
    }
}

1 个答案:

答案 0 :(得分:1)

问题在于,每次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。理想情况下,您需要创建一个ViewModel,其中包含绑定到ObservableCollection的{​​{1}}。在DataGrid内部将是一个将项目添加到ViewModel

的命令