【问题标题】:WPF DataGrid inside Accordion height issue手风琴高度问题中的WPF DataGrid
【发布时间】:2011-01-27 13:00:50
【问题描述】:

我正在使用最新的WPF Toolkit,但是当我在AccordionItem 项目内绑定到DataGrid 的大型记录集时遇到了高度问题。 Accordion 本身的高度可以很好地缩放,但手风琴控件内的 DataGrid 没有得到 ScrollBar 或以任何方式受到限制,因此记录被隐藏。

我知道我很可能遗漏了一些非常简单的东西(比如从DataGrid 的高度属性到手风琴的绑定,但看起来很乱)

这是代码的精简版本(是的,如果您绑定在大记录集中,这会出现同样的问题)

<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>

【问题讨论】:

    标签: wpf xaml datagrid height wpftoolkit


    【解决方案1】:

    看起来我最初的想法是正确的 - 我能够解决这个问题的唯一方法是将 DataGridMaxHeight 绑定到 AccordionItem 的 ActualHeight

    将以下属性添加到每个 DataGrid 就可以了

    MaxHeight="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type layouttoolkit:AccordionItem}},Path=ActualHeight}"
    

    【讨论】:

      【解决方案2】:

      我很高兴我偶然发现了这个!需要对此 QA 进行投票。除了列宽之外,我遇到了类似的问题。

      我的 DataGrid 有 Width="Auto",以及一些 * 大小的列宽。在 Accordion 之外,DataGrid 渲染得很好,但在 Accordion 内部,所有列的宽度都会被压缩到每个 10 像素。想不通为什么。可能是错误?

      我注意到,如果我将静态宽度设置为 400 而不是 Auto,则列将正确呈现。然后我尝试像你一样将 DataGrid Width 绑定到 AccordionItem ActualWidth,现在它工作得很好。谢谢楼主!

      【讨论】:

        猜你喜欢
        • 2011-12-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-21
        • 1970-01-01
        • 1970-01-01
        • 2013-10-01
        • 2014-09-25
        相关资源
        最近更新 更多