我创建了一个带有TextBlock的UserControl,问题是我无法从使用此Usercontrol的MainPage更改此UserControl的文本。
Plz帮助我成为Metro风格App的新手基本上是windows手机开发者。检查下面的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>
我无法从使用此UserControl的页面访问名为“edit”的文本块。
答案 0 :(得分:0)
完全正常,因为用户控件中的控件无法公开访问。您应该在usercontrol中定义公共属性以使这些控件可用...
答案 1 :(得分:0)
您好像错过了Grid.ColumnDefinition
和Grid.RowDefinition
<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>
所以你实际上放错了他们......
答案 2 :(得分:0)
这是正常的,TextBlock是UserControl中的私有字段。您需要重新公开您希望能够修改的属性,例如使用此技术:http://www.geekchamp.com/tips/how-to-expose-properties-of-a-user-control-in-windows-phone