【发布时间】:2016-06-11 11:32:15
【问题描述】:
我有以下 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 将列和数据绑定到网格? 请记住,TabItem 和匹配的 DataGrid 本身是动态的,列数及其内容也是如此。
我尝试以动态方式为网格命名,以便我可以通过编程方式访问它,但无济于事。
欢迎提出任何建议!
谢谢!
【问题讨论】:
标签: c# wpf xaml data-binding datagrid