2016-09-30 166 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); 解決了這個問題。謝謝! –