繁体   English   中英

如何选择和标签的对象,如果它是C#中的Grid的子节点

[英]How To select and object of label , If it is a child of Grid in C#

我有一个程序,我必须更改标签文本(点击按钮),这是一个网格的孩子

public class XLabel
{
 Grid uiGrid = null;
 TextBlock textblock = null;
 string emptyString = "";

 Public void createLabel()
 {
  uiGrid.Children.Add(textblock);   
  grid.Children.Add(uiGrid);     
 }

 public void cleartext()
 {                
  textblock.Text = emptyString;          
 }
}

在其他课程中,我有一种清除文字的方法

public void clearText()
{         
  XLabel obj = new XLabel();
  obj.cleartext(indexi);          
}

如果有多个网格且每个网格都有一个标签,如何选择特定标签来清除特定网格中的文本。

Grid对象具有NameTag等属性,可用于搜索。

如果以编程方式创建网格,则应为每个创建一个唯一属性,然后在clearText方法中,您只需从XLabel对象接收所有网格对象,并搜索具有正确名称/标记的对象。


要从网格中获取标签列表,您可以像这样使用lambda:

List<UIElement> list = 
          YourGrid.Children.Where(o => o.GetType() == typeof(Label)).ToList();

为了扩展奥尔特的答案,

像这样创建Textblock和Grid

Grid uiGrid = new Grid() { Name = "uiGrid"+1 };
TextBlock textblock = new TextBlock() { Name = "textBlock"+1 };

每次更改您添加到网格和文本块的数字,并以某种方式计划keeptrack该数字。

然后当你想要清除文字时,

(this.FindName("textBlock"+1) as TextBlock).Text = "";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM