如何获取绑定到数据网格的列表的值

How can i get the values of the list bounded to a datagrid

我已将列表绑定到 DataGrid。修改 DataGrid 中的列表后,我想将列表保存在 xml 文件中。我怎样才能访问 c# 代码中的列表? 换句话说,我想在单击 Button.

后获取 Welle1 的内容

InitializeComponent();

List<Wellenelement> we1 = new List<Wellenelement>();
Welle Welle1 = new Welle
            {
                Elemente = we1
            };

dataGrid.DataContext = Welle1;

```c#

因此,首先,使用 WPF,您必须使用 Properties 和 PropertyChangedEvent。

转到您的 MainWindow.xaml.cs(或您的 ViewModel,如果您已经使用 MVVM)并在您的构造函数下方添加(通常 public MainWindow(){ //[...]

public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged(string propertyName)
{
  if (PropertyChanged != null)
  {
    PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
  }
}

您还必须将 using System.ComponentModel; 添加到您的 usings 以找到所需的 classes。

接下来在构造函数的正上方添加一个新的 Property,如下所示:

  private ObservableCollection<WellenElement> m_WellenListe;
  public ObservableCollection<WellenElement> WellenListe
    {
      get { return m_WellenListe; }
      set
      {
        m_WellenListe = value;
        OnPropertyChanged("WellenListe");
      }
    }

注意:如果您想在运行时更改 ItemsSource,我建议您使用 ObservableCollection 而不是 List。 (您必须添加 using System.Collections.ObjectModel; 才能获得 class)

现在您可以将 DataGrid 绑定到 ObservableCollection:

<DataGrid ItemsSource="{Binding WellenListe}"/>

现在您可以在后面的代码中使用您的列表做任何您想做的事情,例如:

button1_click(object sender, RoutedEventArgs e)
{
    foreach(WellenElement welle in WellenListe)
    {
      //Save to xml
    }

}