2010-07-09 2 views
0

내 시나리오 :런타임 빌드 컨트롤의 레이아웃 (템플릿) 변경

내 양식에 tabControl이 있습니다. TabControl을 추가하려는 다른 클래스에 TabItem 컨트롤을 확장했습니다.

각 ExtendedTabItem에는 특정 헤더와 데이터 템플릿이 있어야합니다.

의 라인에 뭔가 :

<DataTemplate DataType="ExtendedTabItem"> 
    <StackPanel Height="100" Width="90"> 
     <TextBlock Text="{Binding Path=Referencia}" FontSize="13" 
     HorizontalAlignment="Center" Margin="0,0,0,1" /> 
     <TextBlock Text="{Binding Path=Estado}" FontSize="9" 
     HorizontalAlignment="Center" Margin="0,0,0,1" /> 
    </StackPanel> 
</DataTemplate> 

그리고 내가 할 수 단순히


Class ExtendedTabItem : TabItem { 
    // bla bla bla 
} 

Action() 
{ 
    ExtendedTabItem A = new ExtendedTabItem(); 
    A.Header = SelectedItem.Referencia; 
    tabControl1.Items.Add(A); 
} 

이이 행할 수 있습니까? 내 검색은 DatTemplateSelector의 사용을 가리키는 것처럼 보이지만 필요한 것은 아닌 것 같습니다.

답변

0

런타임에 템플릿을 정의하여 해결할 수있었습니다.

<DataTemplate x:Key="t1" DataType="l:CloseableTabItem"> 

A.ContentTemplate = this.FindResource("t1") as DataTemplate; 

나는 여전히 그럴 필요가없는 해결책을 선호합니다.