2010-12-13 5 views
0

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

ответ

1

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>