Предположим, у меня есть сетка с некоторыми определениями строк и дочерний элемент управления в этой сетке. Как мне программно установить свойство Grid.Row дочернего элемента управления?





Я не уверен на 100%, что это в SilverLight, но в WPF вы вызываете статический метод (называемый SetX, где X - свойство) для типа, для которого определено присоединенное свойство, и передаете его, в каком элементе управления установить значение , а значение:
Grid.SetRow(MyControl, myRowNumber);
Чтобы установить значение:
textBlock.SetValue(Grid.RowProperty, 3);
Чтобы сбросить значение:
textBlock.SetValue(Grid.RowProperty, null);
Если хотите, можете использовать идиому: Grid.SetRow (textBlock, 3); Присоединенные свойства обычно имеют методы Get и Set (хотя я не думаю, что это обязательно, поэтому могут быть исключения).
Я заметил (это в бета-версии SL3), что для изменения местоположения дочернего элемента управления нельзя просто установить это свойство - вам нужно удалить элемент управления из родительской сетки, установить свойство, как показано здесь, а затем повторно добавить его к родительскому.
На самом деле, чтобы очистить значение, вы должны использовать это:
textBlock.ClearValue(Grid.RowProperty);
Не уверен, что у меня в голове, возможно, вы сможете обнулить его.