不能访问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
这是正常的,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>
所以你实际上把它们放错了。