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

多くのグリッドがあり、それぞれに 1 つのラベルがある場合に、特定のグリッドからテキストをクリアするために特定のラベルを選択する方法。

4

2 に答える 2

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 に答える
1

Grid オブジェクトには、検索に使用できるNameTagなどのプロパティがあります。

プログラムでグリッドを作成する場合は、それぞれに一意のプロパティを作成する必要があります。その後、clearText メソッドで XLabel オブジェクトからすべての Grid オブジェクトを受け取り、適切な名前/タグを持つものを検索します。


グリッドからラベルのリストを取得するには、次のようにラムダを使用できます。

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