У меня есть сетка данных, в которой я отображаю несколько объектов с некоторыми столбцами. Я добавил группировку в сетку данных, и теперь кажется, что она не похожа на столбцы с шириной '*' - все столбцы свернуты до минимальной ширины. Однако, когда я обновляю сетку (после добавления элемента или изменения существующего), я вижу, что столбцы обновляются нормально.
Странно то, что я вызываю одну и ту же функцию дважды, и в первый раз она не работает, а во второй -
До:
http://www.microage -dil.ca / SO / GridBefore.png
После однократного обновления
http://www.microage -dil.ca / SO / GridAfter.png
Вот функция Обновить:
Private Sub ListerDocuments()
Dim lstCVDocuments As New ListCollectionView(_oLstDocuments)
lstCVDocuments.GroupDescriptions.Add(New PropertyGroupDescription("TypeFichier"))
GridDocuments.ItemsSource = lstCVDocuments
GridDocuments.Items.Refresh()
End Sub
А теперь таблица данных:
<DataGrid x:Name="GridDocuments" Grid.Column="0" ItemsSource="{Binding}" Style="{StaticResource BaseGrid}" IsTabStop="False">
<DataGrid.GroupStyle>
<GroupStyle>
<GroupStyle.HeaderTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch">
<TextBlock Text="{Binding Path=Name}" />
</StackPanel>
</DataTemplate>
</GroupStyle.HeaderTemplate>
<GroupStyle.ContainerStyle>
<Style TargetType="{x:Type GroupItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GroupItem}">
<Expander>
<Expander.Header>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch">
<TextBlock Text="{Binding Path=Name}" FontWeight="Bold" />
</StackPanel>
</Expander.Header>
<ItemsPresenter />
</Expander>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</GroupStyle.ContainerStyle>
</GroupStyle>
</DataGrid.GroupStyle>
<DataGrid.Columns>
<DataGridTextColumn Header="Nom" Width="2*" MinWidth="150"
Binding="{Binding NomFichier}"
IsReadOnly="True" />
<DataGridTextColumn Header="Fichier" Width="3*" MinWidth="150"
Binding="{Binding NomFichierOriginal}"
IsReadOnly="True" />
<DataGridTextColumn Header="Extension" Width="65" MinWidth="50"
Binding="{Binding ExtensionFormate}"
IsReadOnly="True" />
<DataGridTextColumn Header="Date d'ajout" Width="80" MinWidth="80"
Binding="{Binding DateAjout, StringFormat=yyyy-MM-dd}"
IsReadOnly="True" />
</DataGrid.Columns>
</DataGrid>
Я получил группировку в сети, и она, казалось, работала нормально, пока не обнаружил особую ошибку. Обратите внимание, что я добавил HorizontalAlignment = "Strech", потому что я думал, что это может решить проблему, но, очевидно, это не так.
РЕДАКТИРОВАТЬ: забыл упомянуть, когда я в первый раз вызываю функцию ListerDocument, переменная полностью загружается с документами и вызывается в конструкторе (New)