C # WPF Dynamic UniformGrid - PullRequest
       17

C # WPF Dynamic UniformGrid

1 голос
/ 13 декабря 2010

У меня есть текстовое поле, где вы можете ввести целое число (которое будет размером UniformGrid). При нажатии кнопки создается UniformGrid, в котором каждая сетка содержит текстовое поле, текстовое поле и кнопку, созданную под другим ElementName. Я прошел так много уроков, и все просто добавили что-то детям. И я не могу установить сработавшую логику связывания - какая привязка к чему, а какая контролируется предметом. Я прошел wpftutorial, и это просто смущает меня дальше. Цените, если кто-то может объяснить логику простыми словами.

1 Ответ

1 голос
/ 13 декабря 2010

UniformGrid на самом деле не может использоваться как ItemsHost для ItemsControl, главным образом потому, что DataTemplate может принимать только одного потомка, что запрещает его использование в этом контексте.

Вот альтернативный подход, который может помочь вам достичь того, что вы хотите (я думаю)

<ListView ItemsSource="{Binding MyData}">
<ListView.View>
  <GridView>
    <GridView.ColumnHeaderContainerStyle>
      <Style TargetType="GridViewColumnHeader">
        <Setter Property="Visibility" Value="Collapsed" />
      </Style>
    </GridView.ColumnHeaderContainerStyle>
    <GridView.Columns>
      <GridViewColumn>
        <GridViewColumn.CellTemplate>
          <DataTemplate>
            <TextBlock Text="{Binding SomeLabelText}" />
          </DataTemplate>
        </GridViewColumn.CellTemplate>
      </GridViewColumn>
      <GridViewColumn>
        <GridViewColumn.CellTemplate>
          <DataTemplate>
            <TextBox Text="{Binding SomeInputText}" />
          </DataTemplate>
        </GridViewColumn.CellTemplate>
      </GridViewColumn>
      <GridViewColumn>
        <GridViewColumn.CellTemplate>
          <DataTemplate>
            <Button Content="{Binding SomeButtonLabel}" />
          </DataTemplate>
        </GridViewColumn.CellTemplate>
      </GridViewColumn>
    </GridView.Columns>
  </GridView>
</ListView.View>

...