<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。