1

我正在练习学习 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 ?

该决定背后的原因是什么?

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

4

2 回答 2

1

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

不相信我?查看MSDN 文档以获取GridView. ;)

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

您也可以Grid像使用AutomationProperties. 这Grid.SetRowSpan只是一个简写。

于 2013-05-11T06:38:59.763 回答
0

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

于 2013-05-16T19:00:03.087 回答