DataGridは、ビジュアルスコープ外のデータとともに表示されます。私はStackOverflowに関するいくつかの同様の質問を見てきましたが、それらのどれも私の問題を解決するように見えませんでした。私は何が間違っているのか分かりません。ただ、ここでのデータグリッドは、私が使用している実際のデータグリッドではないことを追加するDataGridに水平スクロールバーが表示されない
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="50"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock HorizontalAlignment="Left" Foreground="{DynamicResource TitleFontColor}"
TextWrapping="Wrap" Text="{Binding WindowTitle}" VerticalAlignment="Center"
Margin="10,10,0,10" FontSize="18.667" FontFamily="Segoe UI" />
<Border Background="{DynamicResource pnlworkarea}"
Grid.Row="1" CornerRadius="2" BorderThickness="1">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="65"/>
<RowDefinition Height="Auto" />
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Border BorderThickness="1"
Background="{DynamicResource Brush_HeaderNew}"
BorderBrush="{DynamicResource pnlworkareastroke}"
CornerRadius="2" Margin="5">
<Grid Margin="0">
<ListBox ItemsSource="{Binding ViewMenuItems}" SelectedItem="{Binding Viewselected}"
VerticalAlignment="Center" Style="{DynamicResource Content_Header_ListBoxStyle}"
ItemTemplate="{DynamicResource Header_DataTemplate}"
ItemContainerStyle="{DynamicResource ContentHeader_ListBoxItemStyle}"
ItemsPanel="{DynamicResource Header_ItemsPanelTemplate}" HorizontalAlignment="Left"/>
</Grid>
</Border>
<Grid Grid.Row="1" Margin="5">
<StackPanel HorizontalAlignment="Left" Orientation="Horizontal" VerticalAlignment="Top" Margin="10,0,0,0">
<ContentControl Focusable="False" Content="ContentControl"
Background="{DynamicResource Brush_VectorIcon}"
Template="{DynamicResource vector_Summary}"
Height="16" Margin="0,5,0,0"/>
<TextBlock TextWrapping="Wrap" Text="{Binding SearchDisplayMessage}" Margin="5,3,0,0" VerticalAlignment="Center"/>
</StackPanel>
</Grid>
<Grid Grid.Row="2" Margin="5">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<DataGrid x:Name="dataGrid"
commands:ControlEvents.GridViewSelectionChangedEventCommand="{Binding SelectionItemsChangeCommand}"
SelectionMode="Single"
AutoGenerateColumns="True"
Margin="0,5" Grid.Row="1" IsReadOnly="True"
ItemsSource="{Binding GridItem, Mode=TwoWay}" SelectedItem="{Binding SelectedItem}"
AlternatingRowBackground="#FFF5F4F8" Background="White" Grid.ColumnSpan="2"
ScrollViewer.CanContentScroll="True"
ScrollViewer.HorizontalScrollBarVisibility="Auto"
ScrollViewer.VerticalScrollBarVisibility="Auto">
<i:Interaction.Behaviors>
<Behaviors:SelectorDoubleClickCommandBehavior Command="{Binding GridDoubleclickcommand}"/>
</i:Interaction.Behaviors>
</DataGrid>
</Grid>
</Grid>
</Border>
</Grid>
:これは私のXAMLのように見えるものです。私のカスタムDataGridはDataGridから派生しています。しかし、私はこれも通常のDataGridで試してみましたが、どちらもうまくいかないようです。
私は示唆したとおりにしましたが、私はそれをVisibleに設定してもスクロールバーは表示されないようです。私はScrollViewerの中にDataGridを配置しようとしましたが、その場合DataGridは想像以上に広がっています。 DataGridの列の幅を制限する方法がある場合は、ScrollViewer内でDataGridを使用しても問題ありません。各列が含まれるデータの最大値まで伸びるようにします。 –
"The" Scrollbar - これは?私は従わない。小さなコードサンプルで問題を再現できますか? – Paparazzi
私はScrollViewer.HorizontalScrollBarVisibility = "Visible"を設定しました。しかし、それは役に立たない。私は本当に短い時間です。そこで、回避策として、DataGridをScrollViewerに配置し、DataGridのロードイベントで、それぞれのコンテンツサイズに基づいて列のサイズを変更しています。さて、この問題は、各列の最小幅を設定する必要があると思われます。それ以外の場合は、データがほとんどない場合はあまりにも小さくなります。 –