0

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)
4

2 に答える 2

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私は実際にあなたの例でそれを試しませんでしたが、それを見ると、すでに ある場合は同じように機能するはずです。


また、必要に応じて詳細については、この以前の投稿を参照してください (スタイル内でこれにアプローチする方法など)...

サブメニュー WPF でフォーカスされた MenuItem を取得する

(免責事項:私の記事ではありません-私はただ感謝しているユーザーです:)

于 2013-03-22T18:01:42.063 に答える
1

使用できます

1)MoveCurrentToPosition(int position) 参照:msdn

2)MoveCurrentTo(Object item) 参照:msdn

3)MoveCurrentToFirst()

4)MoveCurrentToLast()

..。

于 2013-03-22T16:19:11.840 に答える