Caliburn.Micro сообщение пузыриться пропуская элемент управления
У меня есть иерархическая коллекция, и я лениво загружаю самый низкий уровень из-за его размера.
Действие, которое я пытаюсь активировать, выполняется на CollectionHolderManager, но кажется, что пузыри пропускают этот визуальный слой по какой-то причине.
<ItemsControl DataContext="{Binding Path=CollectionHolderManager}"
ItemsSource="{Binding Path=CollectionTopLevel}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<telerik:RadToolBar cal:Bind.Model="{Binding}">
<TextBlock x:Name="Name" />
<ItemsControl ItemsSource="{Binding Path=CollectionMiddleLevel}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<telerik:RadDropDownButton cal:Bind.Model="{Binding}"
Content="{Binding Path=Name}"
cal:Message.Attach="[Event DropDownOpened] = [Action GetLowestLevel($dataContext)]">
<telerik:RadDropDownButton.DropDownContent>
<telerik:RadListBox SelectionMode="Multiple"
ItemsSource="{Binding Path=CollectionLowestLevel}">
<telerik:RadListBox.ItemTemplate>
<DataTemplate>
<!-- some template -->
</DataTemplate>
</telerik:RadListBox.ItemTemplate>
</telerik:RadListBox>
</telerik:RadDropDownButton.DropDownContent>
</telerik:RadDropDownButton>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</telerik:RadToolBar>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
Поэтому, если у меня есть действие над TopLevelCollection, оно вызывается.
Если у меня есть это на ViewModel, который владеет CollectionHolderManager, он вызывается, но не когда он находится на самом CollectionHodlerManager. Почему это пропускает это?
1 ответ
Решение
Такая простая вещь, я не могу поверить, что я пропустил это.
<ItemsControl cal:Bind.Model="{Binding Path=CollectionHolderManager}"
ItemsSource="{Binding Path=CollectionTopLevel}">
Bind.Model вместо DataContext.