2011-04-20 127 views
0

我有一个嵌套的ListView,我可以基本列表视图中选择的项目绑定到我的视图模型,但不是我的选择嵌套的ListView(在基本列表视图)的项目我只是做: 这是我的列表视图:如何获取嵌套列表视图的选定项目?

 <ListView Height="155" ScrollViewer.CanContentScroll="True" ScrollViewer.VerticalScrollBarVisibility="Visible" dd:DragDrop.IsDragSource="True" 
    dd:DragDrop.IsDropTarget="False" Margin="24,506,280,169" Background="#CDC5CBC5" 
       dd:DragDrop.DropHandler="{Binding}" SelectedItem ="{Binding Path=SelectedCluster,UpdateSourceTrigger=PropertyChanged,Mode=TwoWay}" ItemsSource="{Binding Path=Clusters,UpdateSourceTrigger=PropertyChanged,Mode=TwoWay}" > 
      <ListView.View> 
       <GridView> 
        <GridView.Columns> 
         <GridViewColumn Header="Titel" DisplayMemberBinding="{Binding Title}"/> 
         <GridViewColumn Header="Questions"> 
          <GridViewColumn.CellTemplate> 
           <DataTemplate> 
            <ListView DataContext="{Binding}" ItemsSource="{Binding ExaminationQuestions}" SelectedItem="{Binding Path=SelectedExaminationQuestionInCluster,UpdateSourceTrigger=PropertyChanged,Mode=TwoWay}"> 
             <ListView.View> 
              <GridView> 
               <GridViewColumn Header="Description" DisplayMemberBinding="{Binding Question.Description}"/> 


              </GridView> 
             </ListView.View> 
            </ListView> 
           </DataTemplate> 
          </GridViewColumn.CellTemplate> 
         </GridViewColumn> 
        </GridView.Columns> 
       </GridView> 
      </ListView.View> 
     </ListView> 

视图模型:

public ExaminationQuestion SelectedExaminationQuestionInCluster 
     { 
      get { return selectedExaminationQuestionInCluster; } 
      set { selectedExaminationQuestionInCluster = value; 
      OnPropertyChanged("SelectedExaminationQuestionInCluster"); 
      } 
     } 

人谁知道我在做什么错?如果我设置第二个列表视图的selecteditem的setter断点。他只是忽略了..

谢谢

回答

2

我的猜测是绑定可能是不正确的。在你的外部ListView中,你绑定到“Clusters”。您的内部ListView可能试图绑定到当前群集上的“SelectedExaminationQuestionInCluster”。您可以使用snoop查看是否属于这种情况。在调试WPF应用程序时,这是一个有价值的工具。它会突出显示红色的破损绑定,并告诉你他们有什么问题。

如果你希望绑定到父DataContext的“SelectedExaminationQuestionInCluster”,你可以使用这个语法:

SelectedItem="{Binding Path=DataContext.SelectedExaminationQuestionInCluster, 
       ElementName=OuterListView}" 

你得给外部的ListView课程的名称。

编辑:我刚刚意识到这可能没有意义。如果每个群集都有其自己的ExamQuestions集合,则每个Cluster都应该有一个SelectedCaminationQuestion。父级DataContext不应该具有SelectedQuestion的任何概念,除非它在所有群集中共享。

相关问题