我已将列表绑定到DataGrid
。在DataGrid
中修改列表后,我想将列表保存在xml文件中。如何获得C#代码中的列表?
换句话说,我想在点击Button
之后获得Welle1的内容。
InitializeComponent();
List<Wellenelement> we1 = new List<Wellenelement>();
Welle Welle1 = new Welle
{
Elemente = we1
};
dataGrid.DataContext = Welle1;
```c#
答案 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;