我正在使用最新的 WPF Toolkit但是当我将大型记录集绑定(bind)到 DataGrid
时遇到了高度问题在 AccordionItem
内元素。 Accordion
的高度本身可以很好地扩展,但 DataGrid
在 Accordion 控件内部没有得到 ScrollBar
或以任何方式受到限制,以便隐藏记录。
我知道我很可能遗漏了一些非常简单的东西(比如从 DataGrid
的高度属性到 Accordion 的绑定(bind),但这看起来很乱)
这是代码的精简版本(是的,如果您绑定(bind)在大记录集中,这会出现同样的问题)
<UserControl>
<layouttoolkit:Accordion x:Name="ReportSelector" HorizontalAlignment="Stretch">
<layouttoolkit:AccordionItem Header="grid 1">
<dg:DataGrid
AutoGenerateColumns="False"
CanUserAddRows="False"
CanUserDeleteRows="False"
SelectionMode="Single">
...
</dg:DataGrid.Columns>
</dg:DataGrid>
</layouttoolkit:AccordionItem>
<layouttoolkit:AccordionItem Header="grid 2">
<dg:DataGrid
AutoGenerateColumns="False"
CanUserAddRows="False"
CanUserDeleteRows="False"
SelectionMode="Single">
...
</dg:DataGrid.Columns>
</dg:DataGrid>
</layouttoolkit:AccordionItem>
<layouttoolkit:AccordionItem Header="grid 3">
<dg:DataGrid
AutoGenerateColumns="False"
CanUserAddRows="False"
CanUserDeleteRows="False"
SelectionMode="Single">
...
</dg:DataGrid.Columns>
</dg:DataGrid>
</layouttoolkit:AccordionItem>
</layouttoolkit:Accordion>
</UserControl>
最佳答案
看起来我最初的想法是正确的 - 我能够解决这个问题的唯一方法是绑定(bind) MaxHeight
的DataGrid
到ActualHeight
AccordionItem 的
将以下属性添加到每个 DataGrid
成功了
MaxHeight="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type layouttoolkit:AccordionItem}},Path=ActualHeight}"
关于 Accordion 高度问题中的WPF DataGrid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2444871/