我有一个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