wpf datagrid页脚布局

时间:2009-12-04 17:03:25

标签: wpf silverlight layout datagrid footer

我的页脚目前由标签和ItemsControl组成。它必须低于2个DataGrid控件,它们的相似之处在于它们都包含一周中每天的固定宽度列和它的结尾(这是页脚中的ItemsControl总数)。

我正在尝试解决对齐问题,这似乎最容易对齐日期列。我以为我可以使用DockPanel作为容器,在ItemsControl上使用Dock = Right,如下所示,但是标签后面的所有内容都在左边开始。

<DockPanel x:Name="columnTotals" DockPanel.Dock="Bottom" >

    <Label ... DockPanel.Dock="Left" Width="Auto">Grand Totals</Label>

        <ItemsControl DockPanel.Dock="Right"
            ItemsSource="{Binding Path=TotalTimeViewModels, Mode=OneWay}">
            <ItemsControl.ItemsPanel>
                <ItemsPanelTemplate>
                    <StackPanel Orientation="Horizontal"/>
                </ItemsPanelTemplate>
            </ItemsControl.ItemsPanel>
        </ItemsControl>

    </DockPanel>

所以我在这篇文章中的 主要问题 是:为什么ItemsControl实际上没有停靠在它的父容器右侧(目前还有一个DockPanel)?

干杯,
Berryl

次要且更复杂的问题是如何使用DataGrid列创建页脚。我迄今为止的主要想法是使用最后一列始终相同且宽度固定的事实。

我可以使用FlowDirection = RightToLeft和8个子标签(而不是一个ItemsControl)使StackPanel排成一行,但这样做的缺点是使XAML膨胀并要求文本为RightToLeft来反转容器流 - 看起来很麻烦,令人困惑。

我想页脚也可能是另一个DataGrid,但是列不会是一样的所以我仍然需要通过从右到左的工作来解决对齐,就像我现在正在做的那样,或者弄清楚是什么当天的起始点列最初是在调整大小之后(我不知道该怎么做)。

再次感谢读这篇文章和干杯 Berryl

1 个答案:

答案 0 :(得分:0)

此代码使用DockPanel解决了对齐问题:

<DockPanel LastChildFill="True" DockPanel.Dock="Bottom" >

    <ItemsControl DockPanel.Dock="Right" Width="Auto" ... />

    <Label ... Width="Auto">Grand Totals</Label>

</DockPanel>

干杯,
Berryl