2013-05-31 3 views
0

TabItem을 포함하는 TabControl을 만들고 싶습니다. TabItem 안에는 ListBox, TextBox, Grid 등의 다양한 컨트롤이 포함 된 StackPanel이 있습니다. 어떻게 각 TabItem의 템플릿을 만들고 그 중 여러개를 만드나요?동일한 컨트롤을 포함하는 TabItem 템플릿을 만드는 방법

예를 들어 음식 카테고리 (육류, 과일, 야채 등)에 대한 탭이 포함 된 TabControl을 만들고 싶습니다. TabItem을 이름과 헤더로 만들어 개별적으로 만들 수 있습니다. 하지만 그 대신에 다음과 같은 템플릿을 만들어 탭으로 템플릿으로 사용할 수 있습니다.

<TabControl x:Name="TabControl" Margin="3,3,3,3" MinWidth="200"> 
    <TabItem Name="FoodCategory1"> 
     <!-- Contents of this does not really matter but its same thing for each "FoodCategory" --> 
     <StackPanel> 
      <Grid> 
       <Grid.ColumnDefinitions> 
        <ColumnDefinition MinWidth="20"></ColumnDefinition> 
        <ColumnDefinition Width="Auto"></ColumnDefinition> 
        <ColumnDefinition Width="Auto"></ColumnDefinition> 
       </Grid.ColumnDefinitions> 
       <TextBox x:Name="InputBox" Grid.Column="0" Margin="5,5,5,5"></TextBox> 
       <Button x:Name="AddButton" Grid.Column="1" HorizontalAlignment="Right" Margin="0,0,5,0" Width="20" Height="20"></Button> 
       <Button x:Name="RemoveButton" Grid.Column="2" HorizontalAlignment="Right" Margin="0,0,5,0" Width="20" Height="20"></Button> 
      </Grid> 

      <ListBox x:Name="FoodList" Margin="3,3,3,3" MinHeight="40"></ListBox> 
     </StackPanel> 
     <!-- example end --> 
    </TabItem> 
</TabControl> 

그리고 내 코드에서 물론

다시 나는 FoodCategoryX.InputBox에 의해 내용 등 각각의 tabitems 접근하고 싶습니다. 어떻게 접근해야합니까?

도움을 주시면 감사하겠습니다.

감사합니다.

답변

1

작성한 내용에 따라 컨테이너 역할을하는 UserControl 또는 CustomControl을 작성하고 이후의 시각 효과를 제공 할 수 있습니다. 이 두 가지 중 가장 간단한 것은 아마도 UserControl입니다. 그런 다음 각 TabItem을 컨트롤의 인스턴스로 채우고 TabItem을 이름으로 지정할 필요가 있습니다.

다양한 자식 컨트롤을 이름으로 처리하는 방법에 대한 다른 질문이 있으면 얻을 수 있지만 더 강력한 방법은 종속성 속성을 노출하여 WPF의 바인딩 기능을 사용하는 것입니다. UserControl을 작성하는 것은 직접적인 노력이며 작동하는 샘플이 있습니다.

+0

가장 긴 시간 동안 나는 UserControl을 만드는 방법을 알아 내지 못했지만, 내가 만든 것은 UserControl이라는 것을 깨닫게되었습니다. 거기에서 모든 것이 모였습니다. 고맙습니다. –

관련 문제