2016-09-30 162 views
1

我有一个ListViewItemsSource绑定与ObservableCollectionWPF ListView选定的项目可见

<ListView 
    Name="ShapesList" 
    ItemsSource="{Binding ChartViewModel.ShapeList}" 
    Grid.Row="1" 
    Margin="10,0,10,5" 
    SelectionMode="Multiple"> 
    <ListView.View> 
      <GridView> 
       <GridView.Columns> 
        <GridViewColumn> 
          <GridViewColumn.CellTemplate> 
           <DataTemplate> 
             <CheckBox IsChecked="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListViewItem}}, Path=DataContext.IsChecked, Mode=TwoWay}" Content="{Binding Path=Name, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListViewItem}}}" /> 
            </DataTemplate> 
          </GridViewColumn.CellTemplate> 
         </GridViewColumn> 
         <GridViewColumn Header="PdC" DisplayMemberBinding="{Binding Name}" />  
       </GridView.Columns> 
      </GridView> 
     </ListView.View> 
    </ListView> 

该窗口有一个负责逻辑的模型:它计算ListView的检查项目。我需要的是当窗口打开时,ListView的选中项目可见。

我试着用

ShapesList.ScrollIntoView(ChartViewModel.GetIndexOfSelectedROI()); 

,但它不能正常工作,即使该方法返回正确的索引。

在此先感谢您的帮助!

回答

2

根据MSDNListView.ScrollInToView将您希望显示的对象作为其参数,而不是索引。

+0

这是真的! ShapesList.SelectedIndex = ChartViewModel.GetIndexOfSelectedROI(); ShapesList.ScrollIntoView(ShapesList.SelectedItem); 解决了这个问题。谢谢! –