【发布时间】:2020-01-29 17:19:12
【问题描述】:
我有一个 WPF 窗口,它有一个选项卡控件,位于网格的第三行,其中包含一个 DataGrid。 DataGrid 正在填充来自 EF 的数据,当加载数据时,DataGrid 超出了窗口的范围。
我尝试了各种解决方案(例如,将垂直/水平对齐设置为拉伸),但我没有尝试过。下面是直到 DataGrid 的第一个打开标记的一段代码(实际上有三个选项卡,每个选项卡都有一个 DataGrid,但它们都是相同的,只是绑定到不同的数据源)。使用下面的 XAML,宽度绑定正确(即 DataGrid 没有超出窗口的右侧),但 DataGrid 的水平部分确实超出了窗口的底部:
<Grid Margin="5,0,5,0" Background="Blue" >
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<user_controls:Spinner x:Name="spinner" Grid.RowSpan="3" Panel.ZIndex="1000"/>
<Menu Grid.Row="0" HorizontalAlignment="Left" VerticalAlignment="Top">
<MenuItem Header="Exit" Click="Exit_Click"/>
<MenuItem Header="Save" Command="{StaticResource SaveCommand}"/>
</Menu>
<GroupBox Grid.Row="1" Header="Server Type" Margin="610,0,0,0">
<StackPanel Orientation="Horizontal" Margin="0,5,0,0" HorizontalAlignment="Right">
<RadioButton x:Name="rbTestServer" GroupName="ServerType" Content="TEST" Foreground="Red" IsChecked="true" Checked="ServerType_Checked"/>
<RadioButton x:Name="rbProductionServer" GroupName="ServerType" Content="PRODUCTION" Foreground="Green" Margin="10,0,10,0" Checked="ServerType_Checked"/>
</StackPanel>
</GroupBox>
<TabControl x:Name="tcTables" BorderBrush="Red" BorderThickness="5" Grid.Row="2" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" MinHeight="371" Height="auto" MinWidth="782" Width="auto" SelectionChanged="TcTables_SelectionChanged">
<TabItem x:Name="tiChargeType" Header="Charge Type">
<DataGrid x:Name="dgChargeType" Background="#FFE5E5E5" AutoGenerateColumns="False" EnableRowVirtualization="True" ItemsSource="{Binding Source={StaticResource vsChargeType}}" Margin="2,10,10,10" RowDetailsVisibilityMode="VisibleWhenSelected" CellEditEnding="CellEditEnding">
任何帮助/建议将不胜感激。
谢谢
【问题讨论】:
-
能否请您提供一些屏幕截图以便更好地理解
标签: wpf datagrid wpf-controls