我正在使用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>
答案 0 :(得分:4)
答案 1 :(得分:0)
我只是将一个Loaded处理程序附加到Datagrid,并将所有其他列设置为宽度为0并使其隐藏。