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

时间:2019-06-13 10:02:17

标签: c# wpf datagrid wpfdatagrid

我已将列表绑定到DataGrid。在DataGrid中修改列表后,我想将列表保存在xml文件中。如何获得C#代码中的列表? 换句话说,我想在点击Button之后获得Welle1的内容。


InitializeComponent();

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

dataGrid.DataContext = Welle1;

```c#

2 个答案:

答案 0 :(得分:0)

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

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

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

您还必须在使用中添加using System.ComponentModel;才能找到所需的类。

接下来,像这样在构造函数的上方添加一个新的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;才能获得课程)

现在您可以将DataGrid绑定到ObservableCollection

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

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

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

}

答案 1 :(得分:-2)

u需要将DataContext绑定到BindableCollection,而不是直接绑定到List;