c# – WPF数据网格 – 如何隐藏可见的下一列/行?

我正在使用WPF数据网格绑定到对象(即不是数据库).我在Stretch上有水平对齐.我目前在一个网格内的边框内.

但是,当我运行应用程序时,DataGrid有一个空白列和网格显示.也就是说我有5列& 5行,然后有一个空白的第6列和行显示.见图:

问题 – 如何摆脱这些空白行?请注意,DataGrid的内容以编程方式填充(即不是静态的).

谢谢

编辑:我修复了额外的行(通过CanUserAddRows),但我仍然遇到右侧额外列的问题.

右侧额外列的问题似乎与自动设置列宽有关. DataGrid实际上已经设置好了(参见下面的XAML),这样就可以在它上面找到一个GridSplitter.当我移动GridSplitter时,我注意到DataGrid列不会自动调整大小.总的来说问题是(a)在启动时有一部分额外的列可见,而(b)在移动GridSplitter之后它们也没有调整大小.

关于如何使这个工作的任何想法?

        <Grid>

            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto"/>
                <ColumnDefinition Width="Auto"/>
                <ColumnDefinition Width="*"/>
            </Grid.ColumnDefinitions>

            <Grid Grid.Column="0">
                <Grid.RowDefinitions>
                    <RowDefinition  Height="Auto"/>
                    <RowDefinition  Height="Auto"/>
                    <RowDefinition  Height="*"/>
                </Grid.RowDefinitions>
                <Label Content="Summary" Grid.Row="0" HorizontalAlignment="Center" />
                <Grid Grid.Row="1">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="*"/>
                        <ColumnDefinition Width="*"/>
                        <ColumnDefinition Width="*"/>
                        <ColumnDefinition Width="*"/>
                    </Grid.ColumnDefinitions>
                    <RadioButton IsChecked="{Binding Path=Period, Converter={StaticResource enumBooleanConverter}, ConverterParameter=AllTime}" Grid.Column="0">All Time</RadioButton>
                    <RadioButton IsChecked="{Binding Path=Period, Converter={StaticResource enumBooleanConverter}, ConverterParameter=Month}" Grid.Column="1">Month</RadioButton>
                    <RadioButton IsChecked="{Binding Path=Period, Converter={StaticResource enumBooleanConverter}, ConverterParameter=Week}" Grid.Column="2">Week</RadioButton>
                    <RadioButton IsChecked="{Binding Path=Period, Converter={StaticResource enumBooleanConverter}, ConverterParameter=Day}" Grid.Column="3">Day</RadioButton>
                </Grid>
                <Border Grid.Row="2">
                    <DataGrid Name="SummaryDataGrid"  HorizontalGridLinesBrush="#FF726868" VerticalGridLinesBrush="#FF726868" AlternatingRowBackground="#FFD0F896" CanUserReorderColumns="False" CanUserResizeRows="False" CanUserAddRows="False" CanUserSortColumns="True" CanUserResizeColumns="False" ColumnWidth="Auto" />
                </Border>

            </Grid>


            <GridSplitter HorizontalAlignment="Right" 
            VerticalAlignment="Stretch" Grid.Column="1" ResizeBehavior="PreviousAndNext"
            Width="5" Background="#FFBCBCBC"/>

            <Grid Grid.Column="2" Name="RTChartGrid">
                <-- CUT -->

            </Grid>


        </Grid>

解决方法:

按照http://social.msdn.microsoft.com/Forums/en/wpf/thread/f7b6845d-f9d6-4f0d-aa88-a338641522ee

上一篇:c# – .NET 4 WPF Datagrid和WPF Toolkit Datagrid之间的差异


下一篇:c# – 绑定WPF DataGrid文本列的前景