StackPanel.Children.Clear() 无法正常工作
StackPanel.Children.Clear() does not work correctly
删除 StackPanel
的 children 时出现问题。
一开始我的 StackPanel
是空的。我调用一个方法在其中添加 11 TextBox
。我想在再次调用此方法之前删除 11 TextBox
。所以我调用我的堆栈面板:
myStackPanel.Children.Clear()
它正在运行(尝试使用调试点和计数)。 StackPanel
中没有children,而是第二次调用后的方法returns22TextBox
。
请问这有什么问题吗?
XAML :
<StackPanel x:Name="myStackPanel"/>
WPF:
var count1 = myStackPanel.Children.Count; // 11 (first call give me 11)
myStackPanel.Children.Clear();
var count2 = myStackPanel.Children.Count; // 0 (it is working)
using (var selectAll = new Database1Entities())
{
var querySelectAll =
from myVariable
in selectAll.Entrees
select myVariable;
foreach (var ligne in querySelectAll) // 11 (0 + 11 = 11 right ?)
{
TextBox myTextBoxNom = new TextBox();
myTextBoxNom.Text = ligne.Nom;
myStackPanel.Children.Add(myTextBoxNom);
}
}
var count3 = myStackPanel.Children.Count; // EDIT >> 11 (but 22 on screen)
编辑 :: 使用评论中的提示
我从未找到解决此错误的方法,但我使用 DataBinding 来避免它,就像您在评论中看到的那样。
删除 StackPanel
的 children 时出现问题。
一开始我的 StackPanel
是空的。我调用一个方法在其中添加 11 TextBox
。我想在再次调用此方法之前删除 11 TextBox
。所以我调用我的堆栈面板:
myStackPanel.Children.Clear()
它正在运行(尝试使用调试点和计数)。 StackPanel
中没有children,而是第二次调用后的方法returns22TextBox
。
请问这有什么问题吗?
XAML :
<StackPanel x:Name="myStackPanel"/>
WPF:
var count1 = myStackPanel.Children.Count; // 11 (first call give me 11)
myStackPanel.Children.Clear();
var count2 = myStackPanel.Children.Count; // 0 (it is working)
using (var selectAll = new Database1Entities())
{
var querySelectAll =
from myVariable
in selectAll.Entrees
select myVariable;
foreach (var ligne in querySelectAll) // 11 (0 + 11 = 11 right ?)
{
TextBox myTextBoxNom = new TextBox();
myTextBoxNom.Text = ligne.Nom;
myStackPanel.Children.Add(myTextBoxNom);
}
}
var count3 = myStackPanel.Children.Count; // EDIT >> 11 (but 22 on screen)
编辑 :: 使用评论中的提示
我从未找到解决此错误的方法,但我使用 DataBinding 来避免它,就像您在评论中看到的那样。