在silverlight中设置子控件值4

时间:2011-04-06 11:40:08

标签: silverlight

如何从父控件设置TextBlock的值?

即。我的父控件(Parent.xaml)有一个像这样声明的子控件(Child.xaml)

<myNamespace:Child x:Name="child"/>

子控件包含一个声明为<TextBlock Text="12345" x:Name="textBlock1" />

的TextBlock

我希望能够从Parent.xaml.cs更改文本框内容,所以我尝试使用

child.textBlock1.Text = "Some new text";

但我得到“'儿童'是'属性',但用作”类型“错误。

我是Silverlight的新手,我有点困惑。关于如何正确地做到这一点的任何想法?

提前致谢。

1 个答案:

答案 0 :(得分:0)

由于Child是一个单独的控件,textBlock1不会自动可供父级使用 - 除非您明确公开公开,否则它对子控件是私有的。

所以在儿童控制中你可以拥有这样的公共财产:

public string Text 
{
    set { textBlock1.Text = value; }
}

或者您可以更直接地公开TextBlock:

public TextBlock ChildTextBlock 
{
    get { return textBlock1; }
}

还有其他一些更好(但稍微复杂一点)的方法(绑定,依赖属性),但这些方法可以让你开始。