2016-11-23 8 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을 추가하거나 첫 번째 탭 아래에 다른 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

"개체 목록"이란 무엇입니까? 정상적인'List '? 이 경우 요소를 요소에 추가하면 뷰는 해당 추가에 대한 알림을받지 못합니다. 이 "객체 목록"은 ObservableCollection '에서 파생되어야한다고 지정해야합니다. –