我对.net4附带的新DataGrid组件有问题。使用行详细信息时出现问题。使用rowdetails,当选择元素时,网格的总高度将增加。这对于显示所有行和行细节以及我所期望的内容是必要的。选择另一行时,第一行详细信息将折叠,新选定行的详细信息将展开。现在的问题是,DataGrid的总高度似乎包括前一个元素的折叠行细节。我的猜测是,它首先打开新行的细节,然后折叠旧的——永远不会调整到较小的尺寸。
考虑这个简单的数据报:
<DataGrid ItemsSource="{Binding Cars}" Background="Blue" SelectionMode="Single" AutoGenerateColumns="True" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="20,20,0,0" Width="450">
<DataGrid.RowDetailsTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical">
<TextBlock>Presenting the car details:</TextBlock>
<TextBlock Text="{Binding Brand}"></TextBlock>
<TextBlock Text="{Binding CarColor}"></TextBlock>
</StackPanel>
</DataTemplate>
</DataGrid.RowDetailsTemplate>
</DataGrid>
它还需要代码后面的几行:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
DataContext = new MyViewModel();
}
}
public class MyViewModel
{
private readonly ObservableCollection<Car> _cars = new ObservableCollection<Car>();
public MyViewModel()
{
_cars.Add(new Car("Toyota", "Silver"));
_cars.Add(new Car("VW", "Black"));
_cars.Add(new Car("Audi", "Blue"));
}
public ObservableCollection<Car> Cars
{
get
{
return _cars;
}
}
}
public class Car
{
public Car(string brand, string color)
{
Brand = brand;
CarColor = color;
}
public string Brand { get; set; }
public string CarColor { get; set; }
}
选择一个元素,然后选择另一个元素-您将看到数据报的蓝色背景正在显示。
我有办法解决这个问题吗?我假设这是组件中的一个bug。如果没有解决方案,有人能告诉我哪里报告这个错误吗?