WPF DataGrid内置手风琴高度问题 [英] WPF DataGrid inside Accordion height issue
问题描述
我正在使用最新的 WPF工具包,但是当我有一个大的记录集绑定到 AccordionItem
项目中的 DataGrid
中。 手风琴
本身的高度很好地缩放,但手风琴控件内的 DataGrid
则无法获得 ScrollBar
或以任何方式受到限制,以便记录被隐藏。
我知道我很可能会丢失一些非常简单的东西喜欢将 DataGrid
的height属性绑定到手风琴,但看起来很乱)
这里是一个剪辑代码的下降版本(是的,如果你绑定在一个大的记录集中,这也有同样的问题)
< UserControl>
< layouttoolkit:手风琴x:Name =ReportSelectorHorizontalAlignment =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:手风琴>
< / UserControl>
看起来我的初始想法是正确的 - 唯一的方法我已经能够解决这个问题,是将 DataGrid
的 MaxHeight
绑定到 AccordionItem的实际高度
将以下属性添加到每个 DataGrid
中, / p>
MaxHeight ={Binding RelativeSource = {RelativeSource FindAncestor,AncestorType = {x:Type layouttoolkit:AccordionItem}},Path = ActualHeight}
I am using the latest WPF Toolkit but am running into a height issue when I have a large record set bound into a DataGrid
inside an AccordionItem
item. The height of the Accordion
itself scales nicely but the DataGrid
inside the accordion control doesn't get get a ScrollBar
or get constrained in any way so the records are hidden.
I know that I am most probably missing something very simple (like a binding from the DataGrid
's height property to the Accordion but that seems messy)
here is a cut down version of the code (and yes, this has the same problem if you bind in a big recordset)
<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>
Looks like my initial idea was right - the only way I have been able to solve this one is to bind the MaxHeight
of the DataGrid
to the ActualHeight
of the AccordionItem
Adding the following property to each DataGrid
did the trick
MaxHeight="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type layouttoolkit:AccordionItem}},Path=ActualHeight}"
这篇关于WPF DataGrid内置手风琴高度问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!