解决数据网格填充问题的最佳方法

本文关键字:最佳 方法 问题 填充 数据 数据网 网格 解决 | 更新日期: 2023-09-27 18:27:30

如果有人能帮我,我将不胜感激,已经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; }

我很挣扎,我尝试了Datagridview、Datatables等等,显然很简单。

我有一个从DatabaseDescriptor对象填充的数据网格,当我点击数据库T的单元格时,应该会从Table对象中获取它的表。

我需要能够添加表,因为我需要将数据存储在内存中,最后我需要再次序列化为xml。

如何为每个数据库获取相应的数据表?如果你不能帮助我,请避免讽刺或讽刺的评论。

解决数据网格填充问题的最佳方法

你到底在纠结什么?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>

或者使用指定DataTemplateDataGrid?或者甚至两个单独的DataGrid控件,使得第二个控件在另一个控件的行选择时显示子元素。