Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 访问Silverlight控件模板项代码隐藏_C#_Silverlight_Layout_Silverlight 4.0_Controltemplates - Fatal编程技术网

C# 访问Silverlight控件模板项代码隐藏

C# 访问Silverlight控件模板项代码隐藏,c#,silverlight,layout,silverlight-4.0,controltemplates,C#,Silverlight,Layout,Silverlight 4.0,Controltemplates,我在页面布局中有一个控件模板,如下所示 <Grid x:Name="LayoutRoot"> <Grid.Resources> <ControlTemplate x:Key="myTemplate" TargetType="esri:MapTip"> <Border CornerRadius="10" Background="#DDFFEEEE" BorderThickness="4" Bo

我在页面布局中有一个控件模板,如下所示

<Grid x:Name="LayoutRoot">
        <Grid.Resources>
        <ControlTemplate x:Key="myTemplate" TargetType="esri:MapTip">
                <Border CornerRadius="10" Background="#DDFFEEEE" BorderThickness="4" BorderBrush="#99FF0000">
                    <StackPanel Background="#DDFFFFFF">

                      <sdk:TabControl Height="180" Margin="5"  Name="tabControl1"  Width="300">      
                               <sdk:TabItem Header="Info" Name="infoTab">

                               <TextBlock x:Name="cityInfoTxt" Tag="{Binding [City_ID]}"/>    

                               </sdk:TabItem>
                        </sdk:TabControl>
                    </StackPanel>
                </Border>
            </ControlTemplate>

但无法访问选项卡控件中的文本块

重写代码隐藏上的OnAplyTemplate()方法,并尝试查找组件

    public override void OnApplyTemplate()
    {
        base.OnApplyTemplate();
        var myTextBlock = GetTemplateChild("cityInfoTxt") as TextBlock;
    }

希望能有所帮助

模板只是为您创建元素时要遵循的模式,它们不是元素本身(因为它们可能是使用同一模板的多个实例)。您试图解决的实际问题是什么?我实际上在Template中更新了textblock您是指text属性吗?如果是这样的话,那么应该通过一个绑定来完成,该绑定将拉取值(而不是尝试将值推入其中)。而不是属性。我想进入
    public override void OnApplyTemplate()
    {
        base.OnApplyTemplate();
        var myTextBlock = GetTemplateChild("cityInfoTxt") as TextBlock;
    }