ItemsControl最初不会显示,只有在选择监听和发出声音时才可见

时间:2019-09-17 12:56:28

标签: wpf itemscontrol snoop

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

这是我的带简单绑定的ItemsControl。 “关卡”道具会填充到“加载的事件”中。

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

关卡道具:

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

上下文是一个INotifyPropertyChanged对象。 Loaded-handler只是:this.Context.Levels = new ReadOnlyObservableCollection<Level>(levels) 并且在我的测试中包含3个viewmodel-instances。

empty stack panel inside itemscontrol No children before selecting in snoop After selection all children are build up

0 个答案:

没有答案