我正在尝试遍历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,即使所有文本框都是空的。
答案 0 :(得分:0)
除了语法错误之外,这应该会给你你期望的结果;如果所有文本框都为空
,则仅返回trueprivate 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
永远不会为空,默认情况下它是空字符串(""
),这就是我的想法,只是可能< /强>