У меня есть два DataGrids внутри дока панелей:WPF DataGridColumn Ширина = «1 *», когда ширина сетки не установлена иногда мешает колонки заполнения
<DataGrid FontSize="16" Margin="5" CellStyle="{StaticResource DataGrid_CellStyle_CentreAlign}" RowHeight="40" CanUserAddRows="False" CanUserDeleteRows="False" CanUserReorderColumns="False" CanUserSortColumns="False" CanUserResizeColumns="False" ItemsSource="{Binding Products}" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Product" Binding="{Binding Product}"/>
<DataGridTextColumn Header="Description" Binding="{Binding ProductDescription}" Width="1*"/>
<DataGridTextColumn Header="Qty" CellStyle="{StaticResource DataGrid_CellStyle_CentreRightAlign}">
<DataGridTextColumn.Binding>
<MultiBinding StringFormat="{}{0:N0} {1}">
<Binding Path="Qty"/>
<Binding Path="QtyUOM"/>
</MultiBinding>
</DataGridTextColumn.Binding>
</DataGridTextColumn>
<DataGridTextColumn Header="Weight" CellStyle="{StaticResource DataGrid_CellStyle_CentreRightAlign}">
<DataGridTextColumn.Binding>
<MultiBinding StringFormat="{}{0:N2} {1}">
<Binding Path="Weight"/>
<Binding Path="WeightUOM"/>
</MultiBinding>
</DataGridTextColumn.Binding>
</DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
И второе:
<DataGrid FontSize="16" Margin="5" HorizontalAlignment="Stretch" CellStyle="{StaticResource DataGrid_CellStyle_CentreAlign}" RowHeight="40" CanUserAddRows="False" CanUserDeleteRows="False" CanUserReorderColumns="False" CanUserSortColumns="False" CanUserResizeColumns="False" ItemsSource="{Binding Pallets}" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Pallet ID" Binding="{Binding PalletId}" />
<DataGridTextColumn Header="Product" Binding="{Binding Product}" Width="1*" />
</DataGrid.Columns>
</DataGrid>
Как вы можете см., что они очень похожи и отображаются правильно в дизайнере, но при запуске это результат:
Как вы можете видеть, размеры столбцов на второй сетке неправильны, столбец описания должен расширяться для заполнения, а столбец поддона должен быть автоматически установлен.
До сих пор все, что я разработал, это то, что связано с шириной DataGrid, так как установка ширины второго столбца DataGrid корректно отображает столбцы (но сама сетка больше не является динамической по размеру).
Кажется, будет установлен прямо ко мне. Может быть, панель, в которой она находится, вызывает проблему? Это может помочь включить xaml панелей. – MichaelN
Я думаю, что ты на что-то. Я удаляю DockPanels и помещаю их в грид. Установка ширины столбцов сетки в * вызвала проблему в обоих датаарифных установках, но после установки определенного значения DataGrids выглядели как ожидалось. – apc