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

标签 c# wpf xaml stackpanel

我在删除 StackPanel 的子项时遇到问题。

一开始我的 StackPanel 是空的。我调用一个方法在其中添加 11 个 TextBox。我想在再次调用此方法之前删除 11 TextBox。所以我调用我的堆栈面板:

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)

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

最佳答案

我从来没有找到解决这个错误的方法,但是我使用了 DataBinding 来避免它,就像你可以在评论中看到的那样。

关于c# - StackPanel.Children.Clear() 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28177190/

相关文章:

c# - 如何获取具有本地时间信息的 DateTimeOffset

c# - 未分配变量的值是多少(null VS 0)

c# - C# 中的动态相等

c# - 组合框的默认值(设置一次)

c# - 将 Windows 主题更改为高对比度时,将按钮颜色更改为白色

wpf - 将 Enum 转换为 TextBlock 文本中的字符串

C#:向 WebClient 发送数据时正确完成连接

c# - 将列添加到包含图像的 ListView

visual-studio - Visual Studio 2012 无法识别 Xaml 文件,设计 View 已损坏

xaml - SVG 作为 Xamarin.Forms 按钮图像