这是我的代码: 但如果有人点击按钮“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;
}
}
答案 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, "---"));
}
虽然,我建议不要走这条路。查看MVVM
,DataBinding
和Commands
。理想情况下,您需要创建一个ViewModel
,其中包含绑定到ObservableCollection
的{{1}}。在DataGrid
内部将是一个将项目添加到ViewModel
。