2013-05-11 2 views
1

Я тренируюсь, чтобы узнать XAML, но синтаксис слишком многословный при моем первом впечатлении. Я пытаюсь создать GridView из коды, как показано ниже: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?

В чем причина этого решения?

Примечание:Я думаю, что могу написать метод расширения, но мне любопытно, почему это не сделано в начале.

ответ

1

Причина это - GridView (или почти любой другой контроль, кроме самого Grid) не имеет RowSpan свойство. Также эти элементы управления не имеют свойств , Column и ColumnSpan.

Не верьте мне? Выезд the MSDN documentation for GridView. ;)

Это свойства, которые вы можете использовать, когда ставите что-то внутри Grid. Обратите внимание, что в XAML вы также установили эти свойства несколько иначе: Grid.Row="1", а не только Padding="2".

Вы также можете настроить свойства Grid так же, как и с AutomationProperties. Grid.SetRowSpan - это всего лишь стенография.

0

Потому что setrow и setrowspan являются прикрепленными свойствами, которые доступны для родительского GRID gridview, который определяет размеры и расположение детей и, следовательно, недоступен для детей (gridview).

Смежные вопросы