0
<ItemsControl x:Name="itemsRoot" ItemsSource="{Binding Path=Context.Levels, ElementName=This}" Margin="0,0,0,-5">

这是我的带有简单绑定的 ItemsControl。Levels 道具在 Loaded-Event 中填充。

我的观察是,在 Loaded-Event 发生后,只有具有空 StackPanel 的 ItemsPresenter 位于可视树中。一旦我使用 Snoop 并选择 ItemsControl,它就会弹出。我正在寻找一个丢失的“PropertyChanged”事件,但我不确定 Snoop 除了调用所选对象上的所有 Getter 之外还在做什么。我在我的应用程序的不同点上注意到了这种行为。这个在绑定中使用 ElementName。不确定它是否有所作为,但始终是一个 ItemsControl,它不会建立它的 Children。

水平道具:

public IReadOnlyCollection<MultiLevelSelectionLevel> Levels
{
    get
    {
       return this.levels;
    }
    private set
    {
       if (value != this.levels)
       {
           this.levels = value;
           OnPropertyChanged();
       }
     }
}

上下文是一个 INotifyPropertyChanged-Object。Loaded-handler 只是:this.Context.Levels = new ReadOnlyObservableCollection<Level>(levels) 在我的测试中包含 3 个视图模型实例。

项目控件内的空堆栈面板 在窥探选择之前没有孩子 选择后所有的孩子都建立起来了

4

0 回答 0