Сетка данных WPF - Как скрыть следующий видимый столбец / строку? - PullRequest
4 голосов
/ 29 сентября 2010

Я использую сетку данных WPF для привязки к объекту (т.е. не к базе данных).У меня горизонтальное выравнивание на Stretch.В настоящее время он у меня внутри Границы, которая находится внутри Сетки.

Однако, когда я запускаю приложение, в DataGrid появляется пустой столбец и сетка, показывающая.То есть у меня есть 5 столбцов и 5 строк, а затем отображается пустой 6-й столбец и строка.См. Изображение:

alt text

Вопрос - Как избавиться от этих пустых строк?Обратите внимание, что содержимое DataGrid заполняется программно (то есть не является статичным).

спасибо

РЕДАКТИРОВАТЬ: я исправил дополнительную строку (через CanUserAddRows), но у меня все еще есть проблема сдополнительный столбец справа.

Проблема с дополнительным столбцом справа связана с автоматической настройкой ширины столбца.DataGrid на самом деле настроен (см. XAML ниже) так, что справа расположен GridSplitter.Когда я перемещаю GridSplitter, я отмечаю, что столбцы DataGrid не меняются автоматически.Таким образом, в целом проблема заключается в том, что (а) при запуске виден частично дополнительный столбец, и (б) после перемещения 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>

Ответы [ 2 ]

4 голосов
/ 07 октября 2010
0 голосов
/ 16 сентября 2013

Я просто прикрепил обработчик Loaded к Datagrid, установил ширину всех дополнительных столбцов и скрыл их.

...