WPF ItemsControl和错误的DataGrid

时间:2018-07-12 15:14:28

标签: c# wpf

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

1)与这个问题How do I make an ItemsControl stretch to fill all availible space?相同的问题是,基本上ItemsControl并不能填满整个空间,而DockedPanel提供的解决方案对我不起作用,因为我需要物品垂直堆叠而不是水平堆叠。除了使用复杂的动态网格,还有其他方法可以实现这一目标吗?

2)当我在问题WPF MVVM Multiple ContentControls in TabControl中使用方法时,DataGrid的显示方式似乎有些偏离。

enter image description here

由于某些原因,标题被压到了一边,并且还在表中添加了信息,这使它看起来非常糟糕。如果我没有使用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>

绑定到上述DataGrid的{​​{1}}(UserControl)中view.xaml的代码:

TabControl

删除页眉样式无济于事。

2 个答案:

答案 0 :(得分:2)

ScrollViewer中删除ContentTemplate元素。 DataGrid在其默认ScrollViewer中内置了自己的ControlTemplate元素。

答案 1 :(得分:0)

我实际上找到了答案,并且所接受的答案是正确的(有一种解决方法):

WPF ScrollViewer around DataGrid affects column width

关于我的第一个问题,我只是坚持使用UniformGrid并将其行数绑定到ViewModel。