我遇到與.NET4一起提供的新DataGrid組件的問題。使用RowDetails時會發生此問題。使用RowDetails時,選擇元素時,網格的總高度會增加。這是顯示所有行和RowDetails以及我所期望的。當選擇另一行時,第一個RowDetails將摺疊,並且新選定行的詳細信息被展開。現在的問題是,DataGrid的總高度似乎包括前一個元素的摺疊rowdetails。我的猜測是,它首先打開新的行細節,然後崩潰舊的 - 而不會調整到較小的尺寸。與RowDetails一起使用時,WPF 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; }
}
選擇一個元素,那麼另外一個 - 你會看到的藍色背景DataGrid正在顯示。
有什麼辦法可以解決這個問題嗎?我假設這是組件中的一個錯誤。如果沒有解決方案;有人可以告訴我在哪裏報告錯誤?
微軟已經接受它作爲一個錯誤,所以猜測他們修復之前沒有解決方案,然後.. – stiank81 2010-04-26 06:52:49
你有沒有找到任何解決方法? – Artiom 2012-08-16 01:49:19