【问题标题】:Can i write this code shorter? with loop or something [duplicate]我可以把这段代码写得更短吗?带循环或其他东西[重复]
【发布时间】:2020-09-15 12:48:09
【问题描述】:

我可以把这段代码写得更短吗?用循环什么的

        R1.Visibility = Visibility.Hidden;
        R2.Visibility = Visibility.Hidden;
        R3.Visibility = Visibility.Hidden;
        R4.Visibility = Visibility.Hidden;
        R5.Visibility = Visibility.Hidden;
        R6.Visibility = Visibility.Hidden;
        R7.Visibility = Visibility.Hidden;
        R8.Visibility = Visibility.Hidden;
        R9.Visibility = Visibility.Hidden;
        R10.Visibility = Visibility.Hidden;

我不想在数组中这样做,因为

不是效率

我对这样的事情很生气

 for (int i = 1; i < 11; i++)
 {
   R+i.Visibility = Visibility.Hidden;
 }

有可能吗?

感谢您的帮助:)

【问题讨论】:

  • 什么是Rx?您可以enumerate children 某些容器在循环中访问它们。更好的方法是分离视图和模型,并拥有bool 的可观察集合以更改控件可见性using bindings
  • 类似foreach (var rect in canvas.Children.OfType&lt;Rectangle&gt;()) { rect.Visibility = Visibility.Hidden; }

标签: c# wpf


【解决方案1】:

使用将它们作为参数并通过循环应用它们的方法

public void SetHidden(params R[] items)
{
    foreach(var r in items)
    {
        r.Visibility = Visibility.Hidden;
    }
}

然后这样称呼它

SetHidden(R1,R2,R3,R4,R5,R6,R7,R8,R9,R10);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-04
    • 2015-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多