ListBox
曲、アーティスト、アルバム、プレイリストをロードする WPF があります。
たとえば、アーティスト ボタンをクリックすると、リスト ボックスに各アーティストが表示されます。
アーティストをクリックすると、そのアーティストの曲が読み込まれます。アルバムも同様。
リスト ボックスをスクロールするための上下ボタンがあり、次のようにエントリが自動的に選択され、上下にスクロールされます。
private void FileNavDown_Click(object sender, RoutedEventArgs e)
{
if (MediaList.SelectedIndex < MediaList.Items.Count)
{
MediaList.SelectedIndex++;
MediaList.ScrollIntoView(MediaList.SelectedItem);
}
}
おそらく、あなたはすでに私の問題を見ています。これらのボタンを使用してアーティスト、アルバム、またはプレイリストをスクロールすることはできません。次のエントリが自動的に選択され、曲が読み込まれるからです。
アーティストのカテゴリにいるときにそれを選択せずにスクロールして、選択したアイテム + 1 を表示するのは簡単だと考えていますが、それは機能しますが、上にスクロールすると、すぐ上のエントリ既に表示されている場合、スクロールして表示しても、ユーザーには何も表示されません。以前は表示されていなかった 5 エントリ上にあるエントリを表示するには、5 回クリックする必要があります。
それで、簡単な修正?構造をあまり変更したくありません。おそらく、ビューがスクロールしたかどうかを検出するために何かが必要なだけです。そうでない場合は、スクロール インデックスを再度インクリメント/デクリメントし、変更されるまでスクロールして表示することができます。