WPF: создать 8x8 таблицу TextBox в коде позади - PullRequest
0 голосов
/ 24 декабря 2010

Мне нужно создать 8x8 таблицу TextBox, каждый TextBox должен быть привязан к элементу массива double [,] (я хочу позволить пользователю изменять матрицу из пользовательского интерфейса).

Какой самый элегантный способ сделать это?

Ответы [ 2 ]

2 голосов
/ 24 декабря 2010

Я бы использовал ItemsControl и изменил бы ItemPanel с StackPanel по умолчанию на WrapPanel. Что-то вроде:

<ItemsControl>
  <ItemsControl.ItemsPanel>
      <ItemsPanelTemplate>
          <WrapPanel />
      </ItemsPanelTemplate>
  </ItemsControl.ItemsPanel>
  <ItemsControl.ItemTemplate>
      <DataTemplate>
        ...
      </DataTemplate>
  </ItemsControl.ItemTemplate>
</ItemsControl>
0 голосов
/ 24 декабря 2010

Используйте UniformGrid ...

<UniformGrid>
        <TextBox Text="{Binding SomeProperty}"/>
         ...
        <TextBox Text="{Binding SomeProperty}"/>
</UniformGrid>

Вам может понадобиться использовать IValueConverter , чтобы справиться с тем, как выпривязка, а также установка ширины и высоты на фиксированный размер, чтобы гарантировать представление 8x8, но UniformGrid в качестве контейнера должно быть достаточно для достижения вашей цели таблицы 8x8.

...