2009-04-10 10 views
1

私はItemsControlを持っていました。これは、ページ上/下ボタンを使用してスクロールすることができます。私はListBoxと交換して、項目が選択されたときに新しいDataTemplateを適用(トリガー)します。ページ上/下のリストボックスのスクロール

ページアップまたはページモードのボタンを使用するまで、すべて正常に機能します。 1ページをスクロールするのではなく、最後までスクロールします。

私の以前のattemps:

  • のDataTemplateが
  • 削除IsSelected = Trueのトリガー完全に
  • を変更したときにアイテムの高さを変更しないすべてのselectionModeが

値は、私は些細な何かを欠場か?

+0

そうでない場合、我々は推測している、いくつかのコードを貼り付けます。 –

答えて

0

実際、私は何か些細なことを忘れました。私はItemsControlの外でScrollViewerを削除するのを忘れていました。リストボックスは独自のScrollViewerを持っているので、これは混乱を招くでしょう。

これは別の質問を提起しました。以前のScrollViewerは自動的に後方のコードからスクロールダウンされました。今、私はリストボックスのScrollViewerに到達することができません、私はLineDownメソッドを呼び出すことはできません。しかし、これが問題を作成しません、初めに

// Responses is the ItemsSource 
Responses.Add(e); 
// xResponses is the ListBox 
var item = xResponses.ItemContainerGenerator.ContainerFromIndex(0); 
ScrollBar.LineDownCommand.Execute(null, item as IInputElement); 

、がnullに評価するかもしれませんアイテム:ここに私の回避策です。いくつかの項目を追加した後、スクロールする前に幸いにも、コンテナが正常に返されます。インデックスは重要ではないことに注意してください。ScrollViewer内にIInputElementが必要です。

1
private void RaiseKeyDownUpEventsOnEntitiesBox(Key key) 
{ 
    KeyEventArgs keyEventArgs = new KeyEventArgs(
     InputManager.Current.PrimaryKeyboardDevice, 
     Keyboard.PrimaryDevice.ActiveSource, 
     System.Environment.ProcessorCount, key); 
    keyEventArgs.RoutedEvent = UIElement.KeyDownEvent; 
    entitiesBox.RaiseEvent(keyEventArgs); 
    keyEventArgs.RoutedEvent = UIElement.KeyUpEvent; 
    entitiesBox.RaiseEvent(keyEventArgs); 
} 

ページダウン

RaiseKeyDownUpEventsOnEntitiesBox(Key.Next); 

ページアップ

+0

Keyboard.PrimaryDevice.ActiveSourceがnullの場合: new HwndSource(0、0、0、0、0、string.Empty、IntPtr.Zero) –

関連する問題