我有一個DataGrid綁定到主窗口中的一些數據。當添加足夠的行時,垂直滾動條就會顯示。但是,它太高,以至於底部滾動按鈕不可見並且最後一行被切斷。DataGrid上的垂直滾動條太高
下面是一個簡化的例子的圖片,與滾動一路下跌:
沒有人有任何想法是怎麼回事?我猜這跟WrapPanel
有關,不能像我期望的那樣自動調整它的高度。
下面是代碼:
MainWindow.xaml
<Window x:Class="TestScroll.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="200" Width="450">
<WrapPanel>
<TextBlock
Text="TextBlock"
Width="400"
Height="40"/>
<DataGrid
x:Name="Control"
AutoGenerateColumns="False"
CanUserAddRows="False"
HeadersVisibility="Column"
Width="400"
ItemsSource="{Binding}" >
<DataGrid.Columns>
<DataGridTextColumn
Binding="{Binding Factor}"
Header="Header">
</DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
</WrapPanel>
</Window>
MainWindow.xaml.cs
using System.Collections.ObjectModel;
using System.Windows;
namespace TestScroll
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
var Table = new ObservableCollection<ViewModel>();
this.DataContext = Table;
for (int i = 0; i < 10; ++i)
{
var row = new ViewModel();
row.Symbol = i.ToString();
row.Factor = decimal.Parse(row.Symbol)/100;
Table.Add(row);
}
}
}
}
個ViewModel.cs
using System.ComponentModel;
namespace TestScroll
{
public class ViewModel : INotifyPropertyChanged
{
private string _symbol;
public string Symbol
{
get { return _symbol; }
set
{
_symbol = value;
OnPropertyChanged("Symbol");
}
}
private decimal _factor;
public decimal Factor
{
get { return _factor; }
set
{
_factor = value;
OnPropertyChanged("Factor");
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(string propertyName)
{
PropertyChangedEventHandler handler = this.PropertyChanged;
var e = new PropertyChangedEventArgs(propertyName);
if (handler != null)
handler(this, e);
}
}
}
發佈DataGrid及其父項的XAML代碼。 – kennyzx 2014-10-11 04:29:06
是的,我將不得不做一個簡單的例子。發佈的代碼太多。 – 2014-10-11 12:47:21
重要的是如何設置DataGrid及其容器的高度,其他代碼應該是不相關的。 – kennyzx 2014-10-11 13:27:40