FrameworkElement.Loaded永远不会触发

时间:2018-03-02 02:14:26

标签: c# wpf

我遇到了一个奇怪的问题,我不确定在哪里进行调试。我有一个Treeview,ItemTemplate设置为HierarchicalDataTemplate设置为CustomTreeViewItem的实例,如下所示。我加载了15个测试视图模型项,绑定正确地更新了控件生成的项。我可以通过15次调用CustomTreeViewItem构造函数。

public class CustomTreeViewItem : TreeViewItem
{
    public CustomTreeViewItem() : base()
    {
        this.Loaded += CustomTreeViewItem_Loaded;

    }

    private void CustomTreeViewItem_Loaded(object sender, RoutedEventArgs e)
    {
        //In a bound collection of 15 items, we arrive here exactly once.
    }
}

我们从预期的15开始到达_Loaded处理程序.UI布局并呈现并且第一个CustomTreeViewItem.Loaded处理程序触发。但是剩下的14个虽然被安排和渲染就像第一个一样,但并没有开火。

我在屏幕上看到了15个项目。我可以使用实时可视树检查15中的任何一个并看到FrameworkElement.IsLoaded = true。

知道我们如何到达IsLoaded但是从不调用处理程序?特别是一个意外的事实,一个正确工作但不是其他完全相同的构造函数?

0 个答案:

没有答案