Tengo una cuadrícula de datos en la que se muestran varios objetos con algunas columnas. Agregué la agrupación a la cuadrícula de datos y ahora parece que no le gustan las columnas con un ancho de '*' - las columnas están todas contraídas al ancho mínimo. Sin embargo, cuando actualizo la cuadrícula (después de agregar un elemento o modificar uno existente), puedo ver las columnas refrescando bien. Lo extraño es que llamo a la misma función dos veces y la primera vez que no funciona mientras que la segunda lo hace.Las columnas están contraídas cuando se utiliza el grupo en la cuadrícula de datos
Antes:
http://www.microage-dil.ca/SO/GridBefore.png
Después de actualizar una vez
http://www.microage-dil.ca/SO/GridAfter.png Aquí es la función Actualizar:
Private Sub ListerDocuments()
Dim lstCVDocuments As New ListCollectionView(_oLstDocuments)
lstCVDocuments.GroupDescriptions.Add(New PropertyGroupDescription("TypeFichier"))
GridDocuments.ItemsSource = lstCVDocuments
GridDocuments.Items.Refresh()
End Sub
Y ahora la cuadrícula de datos:
<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>
Obtuve la parte de agrupación en la red y parecía funcionar bien hasta que encontré ese error especial. Tenga en cuenta que agregué el HorizontalAlignment = "Strech" porque pensé que podría resolver el problema, pero evidentemente no lo hizo.
EDIT: He olvidado mencionar, la primera vez que llame a la función ListerDocument, la variable se ha cargado completamente con los documentos y se le llama en el constructor (Nuevo)
Muchas gracias. Hay tantas cosas que debe saber acerca de WPF ... –
Muchas gracias: solucionó ese problema durante horas y esto lo resolvió con exactitud. – WhileTrueSleep
Wow. Muchas gracias. WPF. – JohnB