Изменить макет (шаблон) в элементах управления сборкой во время выполнения - PullRequest
0 голосов
/ 09 июля 2010

Мой сценарий:

У меня есть форма TabControl. Я расширил элемент управления TabItem для некоторых других классов, в которые я хочу добавить TabControl.

Мне нужно, чтобы каждый из 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, но это не совсем то, что мне нужно.

1 Ответ

0 голосов
/ 09 июля 2010

Мне удалось обойтись путем определения шаблона во время выполнения.

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

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

Я бы все же предпочел решение, которое бы в нем не нуждалось.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...