Лучший способ решить проблему совокупности данных
Пожалуйста, я был бы очень признателен, если бы кто-то мог мне помочь с этим, прошло 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.
Как мне сделать часть получения соответствующих таблиц данных для каждой базы данных? Пожалуйста, если вы не можете мне помочь, избегайте саркастических или ироничных комментариев.
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
с указанным DataTemplate
может быть? Или даже два отдельных DataGrid
контролирует, чтобы второй отображал дочерние элементы при выборе строки другого.