为什么不能操作ControlTemplate

本文关键字:ControlTemplate 操作 不能 为什么 | 更新日期: 2023-09-27 17:58:49

后代码:

var roomTable = from desks in context.RoomToStandartDesks
            where desks.id_room == room.id
            select desks.Desk;
var tabItem = new TabItem
          {
          DataContext = roomTable,
          Header = headerText,
          };
if (controlTemplate == null)
    tabItem.Content = (object)roomTable;
else
    tabItem.Content = new ContentControl { Template = controlTemplate };
tabItems.Add(tabItem);

((ContentControl)(tabItem.Content)).Content==空

((ContentControl)(((ContentControl)(tabItem)).Content)).ContentTemplate==空

和xaml控制模板:

<ControlTemplate x:Key="MyTabItemContentTemplate">
<StackPanel>
    <TextBlock Text="{Binding Path=x}"/>
    <ItemsControl ItemsSource="{Binding DataContext, Converter={StaticResource KeySimplyConvert}}">
        <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <Canvas Margin="10" Background="AliceBlue"  HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
        </ItemsPanelTemplate>
        </ItemsControl.ItemsPanel>
        <ItemsControl.ItemTemplate>
        <DataTemplate>
            <Border>
            <Border.RenderTransform>
                <TranslateTransform X="{Binding x, Mode=TwoWay}" Y="{Binding y, Mode=TwoWay}"/>
            </Border.RenderTransform>
            <Managerer:TablePanel DataContext="{Binding}" />
            </Border>
        </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>
</StackPanel>
</ControlTemplate>

为什么?A使用Silverlight 4。

为什么不能操作ControlTemplate

我希望我能正确理解你的要求。。。

  1. 为什么((ContentControl)(tabItem.Content)).Contentnull,以及
  2. 为什么CCD_ 5是CCD_

在C#的第一位之后。我认为两者的答案都与你代码中的这一行有关:

else
    tabItem.Content = new ContentControl { Template = controlTemplate };

我在下文中简化了副题,希望能保持正确性。此外,将tabItem强制转换为ContentControl以获得相同的Content属性只会使读取变得更加困难:

  1. ((ContentControl)tabItem.Content).Contentnull,因为您从未设置新ContentControlContent属性。您只设置了Template属性
  2. ((ContentControl)tabItem.Content).ContentTemplatenull,原因大致相同:您没有设置ContentTemplate,而是设置了Template