0

我有一个程序,我必须在其中更改作为网格子项的标签文本(单击按钮)

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);          
}

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

4

2 回答 2

1

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

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


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

List<UIElement> list = 
          YourGrid.Children.Where(o => o.GetType() == typeof(Label)).ToList();
于 2012-12-20T06:56:12.450 回答
1

为了扩展奥尔特的答案,

像这样创建您的文本块和网格

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

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

然后当你想清除文本时,

(this.FindName("textBlock"+1) as TextBlock).Text = "";
于 2012-12-20T07:18:01.430 回答