2012-08-23 38 views
3

我有一个分层集合,我懒负载的最低水平,因为它的大小。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的行动得到它的调用。

如果我有它在拥有CollectionHolderManager得到它的调用,但是当它不是在CollectionHodlerManager本身的视图模型。为什么跳过这个?

回答

4

这么简单的事,我不能相信我错过了。

<ItemsControl cal:Bind.Model="{Binding Path=CollectionHolderManager}" 
       ItemsSource="{Binding Path=CollectionTopLevel}"> 

Bind.Model而不是DataContext。