不能访问UserControl中的子元素

本文关键字:元素 访问 UserControl 不能 | 更新日期: 2023-09-27 18:10:24

我创建了一个带有TextBlock的UserControl,问题是我无法从MainPage更改这个UserControl的文本,我已经使用了这个UserControl。

请帮助我新的Metro风格的应用程序基本上是windows phone开发人员。查看下面usercontrol的来源

<UserControl
x:Class="Version1forMainMenu.MyUserControl1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Version1forMainMenu"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="300"
d:DesignWidth="400" x:Name="MyUserControl1">
<Grid x:Name="grid_amorti"  PointerEntered="gride_quickestimate_PointerEntered" PointerExited="gride_quickestimate_PointerExited" PointerPressed="gride_quickestimate_PointerPressed" PointerReleased="gride_quickestimate_PointerReleased" Tapped="gride_quickestimate_Tapped">
    <Grid.Background>
        <ImageBrush ImageSource="Image/inside_menu_normal.png"/>            
    </Grid.Background>

    <TextBlock Grid.Row="1" Grid.Column="2" Grid.ColumnSpan="3"  x:Name="edit"   Text="" FontSize="30" FontWeight="Bold" VerticalAlignment="Center" FontFamily="Global User Interface" Margin="10,112,29,111" ></TextBlock>
    <Image Grid.Row="1" x:Name="img" Grid.Column="5" Source="Image/small_arrow.png"  />

</Grid>

我不能访问名为"edit"的文本块从一个页面,其中使用了这个UserControl

不能访问UserControl中的子元素

这是正常的,TextBlock是UserControl内部的私有字段。您需要重新公开您希望能够修改的属性,例如使用以下技术:http://www.geekchamp.com/tips/how-to-expose-properties-of-a-user-control-in-windows-phone

这是完全正常的,因为您在usercontrol中的控件不是公开访问的。您应该在usercontrol中定义一个公共属性,以使这些控件可用…

看起来你错过了你的Grid.ColumnDefinition s和Grid.RowDefinition s

<Grid x:Name="grid_amorti" ...>  
    <Grid.Background>
         <ImageBrush ImageSource="Image/inside_menu_normal.png"/>            
    </Grid.Background>
    <Grid.ColumnDefintion>
    </Grid.ColumnDefinition>
    <Grid.RowDefiniton>
    </Grid.RowDefinition>
</Grid>

所以你实际上把它们放错了。