C#Windows应用商店应用 - 在xaml上查找资源

时间:2012-11-16 10:24:23

标签: xaml windows-8 microsoft-metro c#

如果我在XAML文件上声明了9个TextBlock,如下所示:

<TextBlock Name="cellText_00" Tag="0"/>
<TextBlock Name="cellText_01" Tag="1"/>
<TextBlock Name="cellText_02" Tag="2"/>
<TextBlock Name="cellText_20" Tag="3"/>
...
<TextBlock Name="cellText_22" Tag="8"/>

有一种方法可以从.cs中获取与之完全匹配的标记元素吗?

例如,可以给出所有相同的名称,并以这种方式得到它:

TextBlock tb = get(cellText,0);

第一个字段是名称,第二个字段是标签吗?

2 个答案:

答案 0 :(得分:2)

不,您不能对许多控件使用相同的名称。 但是有一种解决方法:使用FindName方法:

http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.findname(v=vs.95).aspx

Why can't I access a TextBox by Name with FindName()? 您可以找到与命名空间问题相关的示例和解决方案。

FindName使用字符串来检索控件。所以你可以这样做:FindName("cellText_" + identifier);并获取你需要的元素。

答案 1 :(得分:0)

@Sandrouos,我认为他没有使用相同的名称。

这篇博客文章完美地解释了它:

http://blog.jerrynixon.com/2012/09/how-to-access-named-control-inside-xaml.html