ListCollectionView.CurrentPosition setter

ListCollectionView имеет свойство получить текущую позицию (CurrentPosition):

http://msdn.microsoft.com/en-us/library/system.windows.data.collectionview.currentposition.aspx

Но это свойство только для чтения.

Получает порядковую позицию CurrentItem в (необязательно отсортированном и отфильтрованном) представлении.

Так как же установить текущую позицию? Я надеюсь, что это не связано с поведением...

Мне нужно прокрутить до верха ListView или DataGrid, и мне кажется, что можно легко установить свойство, подобное этому, для его достижения, не вдаваясь в подробности представления.

Заранее спасибо.

Обновить:

Это мой собственный обходной путь на данный момент - но это своего рода маскировка - когда кто-то хочет использовать MVVM (используя F#):

let linesControl = context.Window.FindName("ObjectListView") :?> ListView
let scrollBorder = VisualTreeHelper.GetChild(linesControl, 0) :?> Border
let scrollViewer = scrollBorder.Child :?> ScrollViewer
scrollViewer.ScrollToVerticalOffset(0.0)

2 ответа

То, что я использую в основном attached property чтобы обойти доступные только для чтения, не привязываемые свойства (даже большую часть времени вам не нужно писать, связывание не выполняется).

Эта статья решает аналогичную проблему с ActualWidth / ActualHeight...

http://meleak.wordpress.com/2011/08/28/onewaytosource-binding-for-readonly-dependency-property/

... и вы можете скачать код / ​​пример там (или http://dl.dropbox.com/u/39657172/Blog/PushBindingInStyleDemo.zip).

То, что вы используете, чтобы связать это что-то вроде...

<pb:PushBindingManager.PushBindings>
    <pb:PushBinding TargetProperty="CurrentPosition" Path="YourPositionProperty"/>
</pb:PushBindingManager.PushBindings>  

Я действительно не пробовал это на вашем примере - но, судя по всему, это должно работать так же, если есть CurrentPosition уже.


Кроме того, взгляните на этот предыдущий пост для получения более подробной информации, если это необходимо (как подходить к этому в стиле и т. Д.)...

Сосредоточьтесь MenuItem в подменю WPF

(отказ от ответственности: не моя статья - я просто благодарный пользователь:)

Ты можешь использовать

1) MoveCurrentToPosition(int position)см: msdn

2) MoveCurrentTo(Object item)см: msdn

3) MoveCurrentToFirst()

4) MoveCurrentToLast()

...

Другие вопросы по тегам