【问题标题】:Disable buttons with similar NAMES禁用具有相似名称的按钮
【发布时间】:2017-01-12 21:59:18
【问题描述】:

我有多个名称相似的按钮。主要相似之处是后缀_min。 如何根据名称的一部分禁用所有这些(因此不是基于全名?

btnX_min.IsEnabled = false;
btnY_min.IsEnabled = false;
btnZ_min.IsEnabled = false;

需要成为:

for all buttons with string _min in Name, IsEnabled = false

如何实现?

【问题讨论】:

    标签: wpf button isenabled


    【解决方案1】:

    根据所有这些按钮在 Visual 树中的位置,您可能希望使用 VisualTreeHelper 类来找到所有这些按钮。请参考这里的递归 FindVisualChildren 方法:

    Find all controls in WPF Window by type

    ...试试这个:

    foreach (Button button in FindVisualChildren<Button>(this).Where(x => !string.IsNullOrEmpty(x.Name) && x.Name.Contains("_btn")))
        button.IsEnabled = false;
    

    【讨论】:

      【解决方案2】:

      我没有检查但试试这个:

            IEnumerable<Button> buttons = mainGrid.Children.OfType<Button>(); //GridMain is the main Layout
              foreach (Button btn in buttons)
              {
                  if (btn.Name.Contains("_min"))
                  {
                      btn.IsEnabled = false;
                  }
              }
      

      【讨论】:

        猜你喜欢
        • 2018-09-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-27
        • 1970-01-01
        • 2020-10-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多