У меня есть следующий код XAML:Динамические столбцы DataGrid и содержание в XAML
<TabControl Grid.Row="1" x:Name="tabs" ItemsSource="{Binding}">
<TabControl.ItemContainerStyle>
<Style TargetType="{x:Type TabItem}">
<Setter Property="Header" Value="{Binding Name}" />
<Setter Property="Visibility" Value="{Binding Visibility}" />
</Style>
</TabControl.ItemContainerStyle>
<TabControl.ContentTemplate>
<DataTemplate>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="1*" />
</Grid.RowDefinitions>
<WrapPanel Grid.Row="0">
<ComboBox VerticalAlignment="Center" HorizontalAlignment="Left" Width="100" ItemTemplate="{StaticResource CCCItemTemplate}" ItemsSource="{Binding Subtypes}" />
<ComboBox VerticalAlignment="Center" HorizontalAlignment="Left" Width="100" ItemTemplate="{StaticResource CCCFileItemTemplate}" ItemsSource="{Binding Files}" />
</WrapPanel>
<DataGrid Grid.Row="1" ItemsSource="{Binding Path=Files}" />
</Grid>
</DataTemplate>
</TabControl.ContentTemplate>
</TabControl>
Где вкладки сами добавляются динамически через XAML с tabs.DataContext = fileTypes;
. Каждая вкладка имеет собственный DataGrid, связанный с классом «FileType». Каждый класс FileType имеет public ObservableCollection<SecondaryFile> Files { get; set; } = new ObservableCollection<SecondaryFile>();
, и каждый имеет SecondaryFile
public ArrayList Columns { get; set; } = new ArrayList();
...
public string[][] data { get; set; };
Есть в любом случае, чтобы связать столбцы и данные в сетке с помощью XAML? Имейте в виду, что TabItems и соответствующие DataGrids являются динамическими сами собой, равно как и количество столбцов и их содержимое.
Я попытался дать ребрам имя динамически, поэтому я могу получить доступ к нему программно, но безрезультатно.
Любые предложения были бы более чем приветствуются!
Спасибо!
Спасибо! По какой-то причине использование Path = Files.Table не работает. Моим текущим решением является создание другого DataTable под FileType и использование Merge для объединения всех столбцов и данных SecondaryFile в нем. Я что-то пропускаю при использовании Path = Files.Table? Должен ли я привязать переменную fileTypes к чему-то, кроме DataContext? – hyit
Поскольку у меня нет ваших полных файлов, я не могу точно сказать, в чем проблема. Попытайтесь изменить свою первую строку (в примере кода) 'ItemsSource =" {Binding} "' и имя объекта 'root', который вы связываете. Если не ошибаюсь, это должно быть '=" {Binding fileTypes} "'. – Athafoud