【问题标题】:Edit champ xaml with concatenation string使用连接字符串编辑冠军 xaml
【发布时间】:2016-06-22 01:06:33
【问题描述】:

我的 xaml 文件中有 6 个类似的值:

<TextBlock Name="Player0" Visibility="Hidden" Text="Player 0" />
<TextBlock Name="Player1" Visibility="Hidden" Text="Player 1" />
...

但我想用这样的 for 循环来改变 Visibilty:

for (int i = 0; i<6; i++)
{
  String test = "Player" + i;
  test.Visibility = Visibility.Visible;
}

但它不起作用。

有人可以帮我吗?

【问题讨论】:

  • 通常会将bindItemsControl 绑定到对象列表,将项目的可见性绑定到这些对象的属性,然后只需更改该属性。另请参阅data templating

标签: c# wpf xaml loops concatenation


【解决方案1】:

试试这个:

for (int i = 0; i < 6; i++)
{
  TextBlock test = (TextBlock)this.FindName("Player" + i);
  test.Visibility = Visibility.Visible;
}

希望这会有所帮助!

【讨论】:

  • 这是完美的,正是我需要的。感谢您的帮助
【解决方案2】:

您的对象在 xaml 文件中的类型是 TextBlock,但它在 cs 文件中的类型是 String。 你确定吗? 如果是,请更改 cs 文件中的类类型,例如,

for(int i=0;i<6;i++)
{
     var block = this.FindName("Player"+i) as TextBlock;
     if (block!=null)
     {
         block.Visibility = Visibility.Visible;
     }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-12
    • 2012-09-05
    • 1970-01-01
    • 2020-02-13
    • 2011-01-01
    • 1970-01-01
    • 2016-04-13
    • 1970-01-01
    相关资源
    最近更新 更多