web-dev-qa-db-ja.com

WPF Datagridでスクロールバーを有効にするにはどうすればよいですか?

次のNorthwind WPF Toolkit Datagridコードを この記事 から実行すると、datagridが取得されますが、スクロールバーなし。したがって、ユーザーはデータグリッドの一部しか見ることができません。 2009年3月の最新バージョンを使用しています。

WPF Datagridにスクロールバーがあるように指定する必要があるのは何ですか?

データグリッドをScrollViewerに入れてみましたが、助けにはなりませんでした。

XAML:

<Window x:Class="TestDataGrid566.Window1"
    xmlns="http://schemas.Microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.Microsoft.com/winfx/2006/xaml"
    xmlns:toolkit="http://schemas.Microsoft.com/wpf/2008/toolkit"
    Title="Window1" Height="600" Width="800">
    <StackPanel>
        <toolkit:DataGrid x:Name="TheDataGrid" AutoGenerateColumns="True"/>
    </StackPanel>
</Window>

コードビハインド:

using System.Linq;
using System.Windows;
using TestDataGrid566.Model;

namespace TestDataGrid566
{
    public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();

            NorthwindDataContext db = new NorthwindDataContext();
            var customers = from c in db.Customers
                            select c;
            TheDataGrid.ItemsSource = customers;
        }
    }
}
56
Edward Tanguay

DataGridGridDockPanelContentControlに入れるか、直接Windowに入れます。垂直方向のStackPanelは、必要な垂直スペースを子に与えます-たとえそれがビューの外にレンダリングされることを意味する場合でも。

94
Kent Boogaart

WPF4

<DataGrid AutoGenerateColumns="True" Grid.Column="0" Grid.Row="0"
      ScrollViewer.CanContentScroll="True" 
      ScrollViewer.VerticalScrollBarVisibility="Auto"
      ScrollViewer.HorizontalScrollBarVisibility="Auto">
</DataGrid>

with:<ColumnDefinition Width="350" /><RowDefinition Height="300" />は正常に動作します。

スクロールバーは、<ColumnDefinition Width="Auto" />および<RowDefinition Height="300" />とともに表示されません。

<ColumnDefinition Width="*" />および<RowDefinition Height="300" />でも正常に動作します。これが外部<Grid>内にネストされている場合。

47
Peter Darvas

親コンテナRowDefinition Heightが"Auto"に設定されている場合、スクロールバーのストッパーも

または、高さ「*」を設定することもできます

それは私の場合に起こりました。

17
Jay

MaxHeightDataGridVerticalScrollBarVisibility="Auto"を追加すると、問題が解決しました。

9
Alex Albu

私の場合、MaxHeightを設定し、IsEnabled="False"IsReadOnly="True"に置き換える必要がありました

1
Lucas

列と行に定義された高さと幅のグリッドを追加します。次にScrollViewerを追加し、その中にdataGridを追加します。

1
Bianca