gpt4 book ai didi

.net - 与 RowDetails 一起使用时,WPF DataGrid 得到错误的高度

转载 作者:行者123 更新时间:2023-12-04 06:54:48 26 4
gpt4 key购买 nike

我对 .NET4 附带的新 DataGrid 组件有问题。使用 RowDetails 时会出现此问题。使用 RowDetails 可以在选择元素时增加网格的总高度。这对于显示所有 Rows 和 RowDetails 以及我所期望的都是必要的。选择另一行时,第一个 RowDetails 将折叠并展开新选定行的详细信息。现在的问题是 DataGrid 的总高度似乎包括前一个元素的折叠行详细信息。我的猜测是它首先打开新行的详细信息,然后折叠旧的 - 并且永远不会调整为更小的尺寸。

考虑这个简单的 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 的蓝色背景正在显示。

有什么办法可以解决这个问题吗?我假设这是组件中的错误。如果没有解决办法;有人可以告诉我在哪里报告错误吗?

最佳答案

当 DataGrid 在 WPF Toolkit 中时,我遇到了同样的问题,并且当时也找不到解决方案。如果有人对我有解决方案 - 请大声喊出来!但我猜这是组件中的一个错误,并提交了 bug report to Microsoft .

关于.net - 与 RowDetails 一起使用时,WPF DataGrid 得到错误的高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2690977/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com