首页 > 解决方案 > WPF ItemsControl 和错误的 DataGrid

问题描述

基本上我有两个相关的问题:

1)与此问题相同的问题如何使 ItemsControl 拉伸以填充所有可用空间?,基本上ItemsControl不会填满整个空间,并且提供的解决方案DockedPanel对我不起作用,因为我需要将项目垂直而不是水平堆叠。除了使用复杂的动态网格之外,还有其他方法可以实现这一点吗?

DataGrid2)当我使用这个问题WPF MVVM Multiple ContentControls in TabControl中的方法时,呈现的方式似乎有些不对劲。

在此处输入图像描述

标题由于某种原因被压到一边,而且在表格中添加信息也使它看起来很糟糕。如果我不使用这种方法ItemsControl来显示表格,这通常不会发生。

TabControl 的代码:

<TabControl ItemsSource="{Binding Tabs}">
    <TabControl.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding Header}"/>
        </DataTemplate>
    </TabControl.ItemTemplate>
    <TabControl.ContentTemplate>
        <DataTemplate>
            <ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto">
                <ItemsControl ItemsSource="{Binding Content}"/>
            </ScrollViewer>
        </DataTemplate>
    </TabControl.ContentTemplate>
</TabControl>

代码DataGridUserControl( view.xaml) 中,它与上述内容绑定TabControl

<DataGrid Grid.Row="0" Margin="10 10 10 0" ItemsSource="{Binding List}" AutoGenerateColumns="False">
            <DataGrid.Columns>
                <DataGridTemplateColumn Header="ID">
                    <DataGridTemplateColumn.HeaderStyle>
                        <Style TargetType="DataGridColumnHeader">
                            <Setter Property="HorizontalAlignment" Value="Stretch"/>
                            <Setter Property="HorizontalContentAlignment" Value="Center"/>
                        </Style>
                    </DataGridTemplateColumn.HeaderStyle>
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <Label Content="{Binding Path=Id}"/>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>
                //...
                //Same for other columns
                //...
</DataGrid>

删除标题样式没有帮助。

标签: c#wpf

解决方案


ScrollViewer您的ContentTemplate. DataGrid有自己的元素ScrollViewer内置到它的 defaultControlTemplate中。


推荐阅读