在此之后:Acess to a DataGrid through C# code and manipulate data inside the DataGrid我决定我应该反序列化我的XML数据并以这种方式使用它,因为我需要在我的应用程序中进行基本的CRUD操作。
我已经有了我的xml数据类(使用XSD工具,你可以在这里找到这个类 - > http://pastebin.com/6GWFAem6)并对我的数据进行反序列化,问题是:
我需要一个TabControl,其中包含与我的xml中的Semestre一样多的选项卡,每个选项卡都有GPASemestre.Nome标题。
在每个标签内,我需要一个带有特定Semestre的Cadeiras的DataGrid。
问题:
提前致谢!
答案 0 :(得分:0)
我建议尽可能使用data-binding和data-templating(如果你还没有这样做的话,请阅读那些),因为这样可以很好地运行自动生成的类需要调整以支持它。
第一步是在所有非集合的属性中实现INotifyPropertyChanged
,这样如果更改属性,UI将自动更新。最好只使用数组进行反序列化,然后将元素复制到类型为ObservableCollection<T>
的属性,或者实现INotifyCollectionChanged
的任何其他集合,以便在将新项添加到收集,永远不要再触摸阵列。
您还可以将Array属性设置为“virtual”(没有后备字段,只需操作get&amp; set),例如:
//The property & field used for binding and editing
private readonly ObservableCollection<GPASemestre> _ObservableSemestre = new ObservableCollection<GPASemestre>();
public ObservableCollection<GPASemestre> ObservableSemestre { get { return _ObservableSemestre; } }
//The property used for serialisation/deserialisation
public GPASemestre[] Semestre
{
get
{
return ObservableSemestre.ToArray();
}
set
{
ObservableSemestre.Clear();
foreach (var item in value)
{
ObservableSemestre.Add(item);
}
}
}