Я хотел бы создать сетку во время выполнения. Это XAML код, чтобы проиллюстрировать то, что я ищу:Настройка ColumnDefinition и RowDefinition программно
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
Name='Test'>
<Grid.RowDefinitions>
<RowDefinition Height='*' />
<RowDefinition Height='*' />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width='*' />
<ColumnDefinition Width='*' />
<ColumnDefinition Width='*' />
<ColumnDefinition Width='*' />
<ColumnDefinition Width='*' />
</Grid.ColumnDefinitions>
</Grid>
код XAML выше штраф за исключением того, что является статическим и фиксировано. Я хотел бы, чтобы приложение создало определение столбцов и строк во время выполнения в зависимости от ввода пользователя. Итак, я создал метод, названный инициируют сетки:
private void initiateGrid()
{
int numberOfColumn = 10;
for (int j = 0; j < (numberOfColumn/5) + 1; j++)
{
RowDefinition r1 = new RowDefinition();
Test.RowDefinitions.Add(r1);
for (int i = 0; i < numberOfColumn; i++)
{
ColumnDefinition c1 = new ColumnDefinition();
c1.Width = new GridLength(1, GridUnitType.Star);
Test.ColumnDefinitions.Add(c1);
TextBlock tb = new TextBlock();
tb.FontSize = 20;
tb.VerticalAlignment = VerticalAlignment.Top;
tb.HorizontalAlignment = HorizontalAlignment.Stretch;
tb.Text = string.Format("Text row {0}, column {1}", j, i);
Test.Children.Add(tb);
Grid.SetColumn(Test, i);
Grid.SetRow(Test, j);
}
}
}
, и я назвал его после того как я InitializeComponent в MainPage.
public MainPage()
{
this.InitializeComponent();
initiateGrid();
}
Я не получаю ошибку компилятора, ни ошибки времени выполнения, но я не вижу TextBlock я пытался заполнить, чтобы проверить точность позиции. Может ли кто-то пролить свет на меня? Что было не так в моем коде?
Спасибо!
Свойства связаны с видом - не помещайте их в виртуальную машину. – slugster
Вид может иметь код в файле кода, который приводит к тому, что модель представления назначается как свойство DataContext. Это может быть так же просто, как представление, создающее новую модель представления и назначение ее в свой DataContext или ввод модели представления в представление с использованием контейнера с инверсией контроля. Однако подключение модели представления к представлению в файле с кодом не рекомендуется, так как это может вызвать проблемы для дизайнеров как в Visual Studio, так и в программном обеспечении Microsoft Expression Blend®. – Monty
Был ли этот комментарий для меня ответом? Я смущен - что именно вы пытаетесь сказать? Кажется, это откуда-то цитата? – slugster