は、私は現在の設定のリストボックスがあります。のListBoxのscrollIntoViewと信頼できないのSelectedItem
DetailsList.DataContext = details;
次のことをやったボタン:
details.Add(System.DateTime.Now.ToString("HH:mm:ss ") + someString);
DetailsList.UpdateLayout();
var lastItem = DetailsList.Items[DetailsList.Items.Count - 1];
DetailsList.SelectedItem = lastItem;
DetailsList.ScrollIntoView(lastItem);
がリスト内の最後の項目を選択して、それにスクロールし、それはそれだけの時間の約75%をしなければならないこと。代わりに、それはしばしば2番目の最後を選択し、その代わりにスクロールします。
私は、スクロールと選択をLayoutUpdatedイベントハンドラに移動しようとしましたが、変更はありません。
私は2つの別々のボタンを試しました - 一つは追加するもの、もう一つは選択してスクロールするものです。 1つのアイテムを一度に追加してからスクロールすると、少し信頼性が高いように見えます。これは時間の90%で動作します。スクロールする前に半ダースのアイテムを追加すると、ほとんど動作しません。通常、新しい項目の1つを選択しますが、最後の項目は選択しません。
何か間違っているか、System.Windows.Controls.ListBoxにバグがありますか?
「someString」とは何ですか?それはいつも同じ価値ですか?ボタンを1秒に1回以上押すと、ここでは平等問題が発生する可能性があると私は考えています。 –
値が重要だとは思わなかった。はい、ボタンテストでは定数でした。同じ内容の要素を区別する方法がないということですか? 「実際の」データが同じであり、1秒間に複数回追加される場合もあります。 –
値は重要です。 ListBoxでSelectedItemを設定するときは、選択するアイテムを見つけるためにアイテムのEqualsメソッドを呼び出します。同じテキストの2つの文字列がある場合は、どちらが意味するのか把握することができず、観察された動作が得られます。 –