Столбец WPF DataGrid становится поврежденным при использовании множественного выбора
Все, я обновляюStatusBar
на основе количества строк, выбранных вDataGrid
, Я делаю это с помощью MVVM. Соответствующий XAML выглядит следующим образом
<DataGrid Grid.Row="1" AlternatingRowBackground="Gainsboro" AlternationCount="2"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
AutoGenerateColumns="False" RowHeaderWidth="0" IsReadOnly="True"
CanUserAddRows="False" CanUserDeleteRows="False" SelectionMode="Extended"
EnableRowVirtualization="False" ItemsSource="{Binding Cultures}">
<DataGrid.Columns>
<DataGridTextColumn Header="Code" Binding="{Binding Code}" IsReadOnly="True"/>
<DataGridTextColumn Header="Language" Binding="{Binding Language}" IsReadOnly="True"/>
<DataGridTextColumn Header="LocalName" Binding="{Binding LocalName}" IsReadOnly="True"/>
</DataGrid.Columns>
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}" />
</Style>
</DataGrid.RowStyle>
</DataGrid>
сStatusBar
определяется
<StatusBar Grid.Row="1" Margin="0,0.4,0.4,-0.4">
<StatusBarItem DockPanel.Dock="Left" Background="#FF007ACC" Margin="0,2,0,0">
<TextBlock Text="{Binding TotalSelectedCultures}" Margin="5,0,0,0" Foreground="White"/>
</StatusBarItem>
</StatusBar>
Я включил этот код, чтобы вы могли видеть параметры, которые я устанавливаю наDataGrid
; как я уже сказал, функцияailail [при выборе строки с помощью мыши количество выбранных строк обновляется вStatusBar
«sTextBlock
] работает. Для получения дополнительной информации об основном механизме, который я использую для этого, см.https://stackoverflow.com/a/2615487/626442.
Теперь, когда я выбираю много элементов, я замечаю, что первый столбец [называемый 'Код'] не отображается / отображается неправильно (как показано, половина из него обрезана).
Я поставилEnableRowVirtualization="False"
иначе это просто самолет не работает, нопочему сейчас мой первый столбец не отображается правильно и как мне сделать так, чтобы он отображался правильно?
Спасибо за ваше время.
Запись. Я пытался установитьEnableColumnVirtualization="False"
но это кажется хуже !? Я также установил обаEnableColumnVirtualization="True"
а такжеEnableRowVirtualization="True"
и это значительно повышает производительность и устраняет проблему рендеринга. Однако это ломаетStatusBar
обновления, он просто останавливается, как только прокручивается представление.