Перейти к строке в WPF Datagrid - PullRequest
1 голос
/ 18 января 2012

Может кто-нибудь, пожалуйста, помогите, я пытаюсь создать метод, который позволит пользователю вводить номер строки, и метод будет "переходить" их к этой строке.Например, когда передается номер строки.

Я использую dataTable в качестве источника элемента для сетки данных.

Пользователь может видеть номера строк на стороне сетки данных.

Пример: пользователь вводит строку 250, и сетка данных перемещается в эту строку.

Я использую сетку данных WPF и c # 4.0.

Ответы [ 3 ]

2 голосов
/ 18 января 2012

В дополнение к тому, что @blindmeis предложил

this._myview.MoveCurrentTo()

, добавьте эту строку:

dataGridView.ScrollIntoView(dataGridView.SelectedItem);
0 голосов
/ 18 января 2012

Это должно работать:

После установки выбранного элемента, как предлагает Blindmeis (или любым другим способом, который вы предпочитаете), используйте myGrid.ScrollIntoView(myGrid.SelectedItem).Обратите внимание, что для этого может потребоваться настройка в зависимости от того, как ваш пользовательский интерфейс обрабатывает выделение в сетке.

В качестве альтернативы, непроверенный ключ:

protected void JumpToRow(int rowNumber)
{
   if(rowNumber>=0 && myGrid.Items!=null && rowNumber<myGrid.Items.Count)
   {
      var border = VisualTreeHelper.GetChild(myGrid, 0) as Decorator;
      if (border != null)
      {
         var scroll = border.Child as ScrollViewer;
         if (scroll != null) scroll.ScrollToEnd();
         scroll.ScrollToStart();
         for(int i=0;i<rowNumber;++i)
         {
            scroll.LineDown();
         }
      }
   }
}
0 голосов
/ 18 января 2012

Я использую методы ICollectionView MoveCurrentTo.

 this._myview.MoveCurrentTo()

хорошо, что ICollectionView знает о сортировке и т. Д.

возможно, вы расскажете нам, каков ваш источник данных и почему пользователь должен знать строку "index". пользователь считает строки на экране? или вы хотите чтобы пользователь попал в строку с ключом = 250?

...