Quantcast
Channel: Windows Presentation Foundation (WPF) forum
Viewing all articles
Browse latest Browse all 18858

WPF DataGrid Column Becoming Corrupt with Multi-Selection

$
0
0

All, I am updating a `StatusBar` based on the number of rows selected in a `DataGrid`. I am doing this using MVVM. The relevant XAML is as follows

<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>

with the `StatusBar` defined by

<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>

I am including this code so that you can see the options I am setting on the `DataGrid`; as I say, the functionaility [upon row selection with the mouse the number of rows selected is updated in the `StatusBar`'s `TextBlock`] is working. For further information on the basic mechanism I am using to do this see http://stackoverflow.com/a/2615487/626442.

Now, as I select many items, I am noticing that that the first column [called 'Code'] is not displaying/rendering correctly (as shown, half of it is cropped off).

I have set `EnableRowVirtualization="False"` otherwise it just plane does not work, but **why now is my first column not rendering correctly and how do I make it render correctly?**

Thanks for your time.

---

Note. I have attempted to set `EnableColumnVirtualization="False"` but this seems worse!? I have also set both `EnableColumnVirtualization="True"` and `EnableRowVirtualization="True"` and this greatly improves performance and removes the rendering problem. However, this breaks the `StatusBar` updates, it just stops as soon as the view scrolls.


"Everything should be made as simple as possible, but not simpler" - Einstein


Viewing all articles
Browse latest Browse all 18858

Trending Articles