StackPanel.Children.Clear()无法正常工作

时间:2015-01-27 18:11:46

标签: c# wpf xaml clear stackpanel

删除StackPanel的孩子时遇到问题。

一开始我的StackPanel为空。我调用一种方法在其中添加11 TextBox。我想在再次调用此方法之前删除11 TextBox。所以我打电话给我的stackpanel:

myStackPanel.Children.Clear()

它正在工作(尝试使用调试点和计数)。 StackPanel中没有子项,但该方法在第二次调用后返回22 TextBox

请问有什么问题?

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)

编辑::与评论中的提示一起使用

1 个答案:

答案 0 :(得分:0)

我从未找到过这个bug的解决方案,但我使用DataBinding来避免它,就像你可以在评论中阅读一样。