【问题标题】:XAML Creating GridView from Code BehindXAML 从代码背后创建 GridView
【发布时间】:2013-05-17 03:00:03
【问题描述】:

我正在练习学习 XAML,但在我的第一印象中语法过于冗长。我正在尝试从代码隐藏创建一个 gridView,如下所示:

var gv = new GridView();

gv.Name = "itemGridView";
gv.ItemsSource = sampleDataGroups;
gv.SetValue(AutomationProperties.AutomationIdProperty, "ItemGridView");
gv.SetValue(AutomationProperties.NameProperty, "Grouped Items");
gv.Padding = new Thickness(116, 137, 40, 46);
Grid.SetRowSpan(gv, 2);

虽然我可以像属性一样设置 gridView 的填充,但为什么我使用网格类的静态方法来设置它的 rowSpan ?

这个决定背后的原因是什么?

注意: 我想我可以写一个扩展方法来做到这一点,但我很好奇为什么一开始就没有。

【问题讨论】:

    标签: c# xaml windows-8


    【解决方案1】:

    原因是 - GridView(或几乎所有其他控件,除了 Grid 本身)没有 RowSpan 属性。这些控件也没有RowColumnColumnSpan 属性。

    不相信我?查看the MSDN documentation for GridView。 ;)

    这些是您在Grid 中放入内容时可以使用的属性。请注意,在 XAML 中,您还可以以稍微不同的方式设置这些属性:Grid.Row="1" 而不是 Padding="2"

    您还可以像设置AutomationProperties 一样设置Grid 属性。 Grid.SetRowSpan 只是一个简写形式。

    【讨论】:

      【解决方案2】:

      因为 setrow 和 setrowspan 是附加属性,它们可用于 gridview 的父 GRID,它决定子项的测量和布局,因此子项 (gridview) 不能直接使用。

      【讨论】:

        猜你喜欢
        • 2011-08-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多