使用ScrollViewer时,DataGrid中的空白额外列很烦人

时间:2012-09-26 08:15:54

标签: wpf datagrid scrollviewer

首先,查看最后一列的宽度。这是“*”。

这是重现问题的xaml:

<Window x:Class="DataGridStaredColumnTest.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:System="clr-namespace:System;assembly=mscorlib" Title="MainWindow" Height="350" Width="525">
    <Grid>
        <ScrollViewer HorizontalScrollBarVisibility="Auto">
            <Grid MinWidth="200" HorizontalAlignment="Stretch">
                <DataGrid AutoGenerateColumns="False" HorizontalAlignment="Stretch">
                    <DataGrid.Columns>
                        <DataGridTemplateColumn Header="1" Width="Auto">
                            <DataGridTemplateColumn.CellTemplate>
                                <DataTemplate>
                                    <TextBlock Text="Column1" Background="Green"/>
                                </DataTemplate>
                            </DataGridTemplateColumn.CellTemplate>
                        </DataGridTemplateColumn>

                        <DataGridTemplateColumn Header="2" Width="*">
                            <DataGridTemplateColumn.CellTemplate>
                                <DataTemplate>
                                    <TextBox Text="Column2" Background="Yellow" HorizontalAlignment="Stretch"/>
                                </DataTemplate>
                            </DataGridTemplateColumn.CellTemplate>
                        </DataGridTemplateColumn>
                    </DataGrid.Columns>

                    <DataGrid.Items>
                        <System:Int16>1</System:Int16>
                        <System:Int16>2</System:Int16>
                        <System:Int16>3</System:Int16>
                    </DataGrid.Items>
                </DataGrid>
            </Grid>
        </ScrollViewer>
    </Grid>
</Window> 

滚动查看器肯定存在一些问题,如果禁用Horizo​​ntalScrollbar,一切正常。

我发现this post关注问题。然而,该解决方案包含另一个在窗口被填充后不断增长的边界的错误。

有人知道如何杀死这个额外的列吗?

0 个答案:

没有答案