StackPanel.Children.Clear()不能正常工作。

问题描述 投票:2回答:1

当我删除我的 StackPanel.

在开始的时候,我 StackPanel 是空的。我调用一个方法来添加11 TextBox 在里面。我想删除11 TextBox 然后再调用这个方法。所以我调用我的stackpanel :

myStackPanel.Children.Clear()

它是工作的(用debug点和计数试试)。在这个方法中没有子方法 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)

EDIT :: 与评论中的提示一起工作

c# wpf xaml stackpanel
1个回答
0
投票

我从来没有发现这个错误的解决方案,但是我使用DataBinding来避免它,就像你可以在评论中阅读。

© www.soinside.com 2019 - 2024. All rights reserved.