首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >从代码访问自定义控件的子控件

从代码访问自定义控件的子控件
EN

Stack Overflow用户
提问于 2011-04-21 05:32:28
回答 3查看 417关注 0票数 0

我在Expression Blend中创建了一个自定义控件,它由放置在Grid中的多个TextBlock组成。现在,我在Visual Studio中将此自定义控件添加到我的电话页面中,并希望从C#代码访问和更改这些TextBlocks的文本。

如何在代码中访问这些子控件?

我想我可以这样做:

代码语言:javascript
代码运行次数:0
运行
复制
MyCustomControl.TextBlock1.Text = "New Text";

但这并不是那么容易。那么我该怎么做呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-04-21 12:25:18

属性MyCustomControl.TextBlock1存在,但它是internal,而不是public。您可以使用MyCustomControl.FindName("TextBlock1") as TextBlock按名称查找资源。

票数 1
EN

Stack Overflow用户

发布于 2011-04-21 06:06:27

GetTemplateChild(string name);能工作吗?您应该能够使用它来访问控件模板的元素

票数 0
EN

Stack Overflow用户

发布于 2017-10-31 19:40:14

尝试下面的代码,这两个代码都可以满足您的需求:

代码语言:javascript
代码运行次数:0
运行
复制
Control subControl1 = (Control)MyCustomControl.Controls[0];

代码语言:javascript
代码运行次数:0
运行
复制
TextBox subControl1 = (TextBox)MyCustomControl.Controls[0];

使用任何代码都可以访问Text属性。始终记住自定义控件中的层次结构,然后尝试逐级访问所有控件。

如果您仍然面临任何问题,请随时询问。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5736900

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档