2016-11-23 97 views
1

我在XAML代碼一個TabControl:WPF的ListView - 添加動態

<TabItem Name="tabItem1" Header="Tab1"> 
    <ListBox Name="lstValues" 
      Background="{x:Null}" 
      BorderBrush="{x:Null}"> 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
     <Border BorderThickness="1" 
       Margin="0,2,0,0" 
       BorderBrush="SteelBlue" 
       CornerRadius="4"> 
      <Grid> 
      <Grid.ColumnDefinitions> 
       <ColumnDefinition Width="30" /> 
       <ColumnDefinition Width="25" /> 
       <ColumnDefinition Width="75" /> 
      </Grid.ColumnDefinitions> 
      <Button Name="btnRemoveValue" 
        Grid.Column="0" 
        Height="25" 
        Margin="5,2,0,2" 
        Background="DarkRed」/> 
      <TextBlock Grid.Column="1" 
         Text="Step"/> 
      <TextBox Grid.Column="2" 
        Margin="35,1,1,1" 
        Height="32"/> 
      </Grid> 
     </Border> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 
    </ListBox> 
</TabItem> 

當用戶點擊按鈕determinated,我需要添加一個新的列表框使用該模板和項目。用戶點擊了多少次?

+0

是否要在TabControl中添加一個新的TabItem,或者只是在同一個TabItem中的第一個下的另一個ListBox中添加新的TabItem? –

回答

2

您應該將您的tabcontrol.ItemsSource綁定到對象列表並設置其ItemTemplate和ContentTemplate。所以,當用戶點擊時,你添加一個新對象的對象列表。類似這樣的:

<TabControl Margin="0,5,0,0" 
      IsTabStop="False" 
      Focusable="False" 
      ItemsSource="{Binding MyObjectCollection, 
       UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"> 
    <TabControl.ItemTemplate> 
    <DataTemplate> 
     <StackPanel Orientation="Horizontal" 
        IsEnabled="False" 
        Focusable="False" 
        HorizontalAlignment="Center"> 
     <TextBlock Text="Versão:" Focusable="False"/> 
     <TextBlock Text="{Binding Sequencia}" Focusable="False"/> 
     </StackPanel> 
    </DataTemplate> 
    </TabControl.ItemTemplate> 
    <TabControl.ContentTemplate> 
    <DataTemplate> 
     <ListBox Background="{x:Null}" 
       BorderBrush="{x:Null}" ItemsSource="{Binding ItemCollection}" > 
     <ListBox.ItemTemplate> 
      <DataTemplate> 
      <Border BorderThickness="1" 
        Margin="0,2,0,0" 
        BorderBrush="SteelBlue" 
        CornerRadius="4"> 
       <Grid> 
       <Grid.ColumnDefinitions> 
        <ColumnDefinition Width="30"/> 
        <ColumnDefinition Width="25"/> 
        <ColumnDefinition Width="75"/> 
       </Grid.ColumnDefinitions> 

       <Button Name="btnRemoveValue" 
         Grid.Column="0" 
         Height="25" 
         Margin="5,2,0,2" 
         Background="DarkRed"/> 
       <TextBlock Grid.Column="1" 
          Text="Step"/> 
       <TextBox Grid.Column="2" 
         Margin="35,1,1,1" 
         Height="32"/> 
       </Grid> 
      </Border> 
      </DataTemplate> 
     </ListBox.ItemTemplate> 
     </ListBox> 
    </DataTemplate> 
    </TabControl.ContentTemplate> 
</TabControl> 

MyObjectCollection是一個集合os對象,你想在視圖中出現。

+0

「對象列表」是什麼意思?一個正常的'列表'?在這種情況下,如果向其中添加元素,該視圖將不會收到該添加的通知。你應該指定這個「對象列表」必須來自'ObservableCollection '。 –