如果有人可以帮我解决这个问题,我会非常感激,这已经过去了4天,而且,凭借我对c#的了解,我无法解决这个问题。
我需要一些指导。
所以我反序列化一个XML文档,我有一个这样的结构:
public class ServiceConfig
{
public List<DatabaseDescriptor> Databases { get; set; }
}
public class DatabaseDescriptor
{
[XmlElement("Name")]
public string Name { get; set; }
public List<Table> Tables { get; set; }
}
public class Table
{
[XmlElement("ID")]
public string ID { get; set; }
[XmlElement("TableName")]
public string TableName { get; set; }
}
public xml.ServiceConfig xmlData { get; set; }
我经常挣扎,我尝试过Datagridviews,Datatables等等,这显然很简单。
我有一个从DatabaseDescriptor
对象填充的数据网格,当我点击数据库的单元格时,T应该从Table
对象中获取它的表。
我需要能够添加表,因为我需要将数据存储在内存中,然后最后需要再次序列化为xml。
如何为每个数据库获取相应的数据表? 如果你能帮助我,请避免讽刺或讽刺的评论。
答案 0 :(得分:1)
你真正在努力的是什么? WPF中数据结构的可视化表示?
如果您尝试以某种有意义的方式显示子元素,则可以使用TreeView
,如下所示:
<TreeView ItemsSource="{Binding Databases}">
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type myTypes:DatabaseDescriptor}" ItemsSource="{Binding Path=Tables}">
<TextBlock Text="{Binding Name}" />
</HierarchicalDataTemplate>
<DataTemplate DataType="{x:Type myTypes:Table}">
<TextBlock Text="{Binding TableName}" />
</DataTemplate>
</TreeView.Resources>
</TreeView>
或者使用指定DataGrid
的{{1}}?或者甚至是两个单独的DataTemplate
控件,因此第二个控件在行选择另一个时显示子元素。