次の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;
}
}
}
DataGrid
をGrid
、DockPanel
、ContentControl
に入れるか、直接Window
に入れます。垂直方向のStackPanel
は、必要な垂直スペースを子に与えます-たとえそれがビューの外にレンダリングされることを意味する場合でも。
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>
内にネストされている場合。
親コンテナRowDefinition
Heightが"Auto"
に設定されている場合、スクロールバーのストッパーも
または、高さ「*」を設定することもできます
それは私の場合に起こりました。
MaxHeight
にDataGrid
とVerticalScrollBarVisibility="Auto"
を追加すると、問題が解決しました。
私の場合、MaxHeight
を設定し、IsEnabled="False"
をIsReadOnly="True"
に置き換える必要がありました
列と行に定義された高さと幅のグリッドを追加します。次にScrollViewer
を追加し、その中にdataGridを追加します。