通过TextBoxes迭代检查是否为空WPF

时间:2013-12-28 22:58:20

标签: c# wpf textbox

我正在尝试遍历WPF窗口中的所有文本框以查看它们是否为空,如果它们是,则该方法应将bool设置为true。

private void checkTextBoxes(DependencyObject obj)
{
   for (int i = 0; i < VisualTreeHelper.GetChildrenCount(obj); i++)
   {
      if (obj is TextBox && ((TextBox)obj).Text == null)
      {
         isTextBoxEmpty = true;
      }
   }
}

isTextBoxEmpty是我在该方法之外定义的bool。我使用以下方法调用该方法:

checkTextBoxes(this);

但是无论我做什么,bool总是返回false,即使所有文本框都是空的。

2 个答案:

答案 0 :(得分:0)

除了语法错误之外,这应该会给你你期望的结果;如果所有文本框都为空

,则仅返回true
private void checkTextBoxes(DependencyObject obj)
{
     var trueforall = true;
     var atleastone = false;
     for (int i = 0; i < VisualTreeHelper.GetChildrenCount(obj); i++)
     {
         if (obj is TextBox)
         {
             if(!atleastone){ atleastone = true;}
             trueforall &= string.IsNullOrWhiteSpace(((TextBox)obj).Text);
             if (!trueforall) { break; }
         }
     }
     isTextBoxEmpty = trueforall && atleastone;
}

答案 1 :(得分:0)

尝试改变这一点:

((TextBox)obj).Text == null)

对此:

(String.IsNullOrEmpty((TextBox)obj).Text))

你得到可能的结果因为TextBox's Text永远不会为空,默认情况下它是空字符串(""),这就是我的想法,只是可能< /强>