Quantcast
Channel: Windows Presentation Foundation (WPF) forum
Viewing all articles
Browse latest Browse all 18858

ScrollIntoView lose focus with virtualization

$
0
0

I'm trying to focus my SelectedItem with ScrollIntoView but it won't work because of the virtualization

Here is my code on the SelectionChanged method

 AnimalDataGrid.Focus();
      if (AnimalDataGrid.Items.Count == 0) return;

      var index = AnimalDataGrid.SelectedIndex;
      if (index < 0) return;

      Action action = () =>
      {
        AnimalDataGrid.ScrollIntoView(AnimalDataGrid.SelectedItem);

        var item = AnimalDataGrid.ItemContainerGenerator.ContainerFromIndex(index) as DataGridRow;
        if (item == null) return;

        item.Focus();
      };

      Dispatcher.BeginInvoke(DispatcherPriority.Background, action);

Here is my datagrid

<DataGrid x:Name="AnimalDataGrid" Margin="0,0,0,4" MinHeight="50" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
              EnableRowVirtualization="True"
              EnableColumnVirtualization="True"
              VirtualizingStackPanel.IsVirtualizing="True"
              VirtualizingStackPanel.VirtualizationMode="Standard"
              SelectedItem="{lcwd:ExtendedBinding Path=SelectedAnimal, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
              ItemsSource="{lcwd:ExtendedBinding Path=AnimalList, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" 
              IsSynchronizedWithCurrentItem="True"  
              SelectionChanged="AnimalDataGrid_SelectionChanged"
              Sorting="AnimalDataGrid_Sorting">

Viewing all articles
Browse latest Browse all 18858

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>