我使用的ObservableCollection作爲我的ListBox組件的的ItemSource:WPF列表框滾動至底部
但控制的行爲不是適當的給我。我已經向下滾動到我收藏中的第一次發生,但不是最後一次。
樣品名單是:1,1,2,3,4,5,6,7,8,9,11,22,33,1
當你enetr最後1個您組件向上滾動到第一個:)。這不是我渴望的。
請指教。這裏的組件代碼:
public class MyListBox : ListBox
{
protected override void OnItemsChanged(System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
{
base.OnItemsChanged(e);
if (Items.Count > 0)
{
var item = Items[Items.Count - 1];
UpdateLayout();
ScrollIntoView(item);
UpdateLayout();
}
}
}
You have and ObservableCollection?如果你的最後一個項目是33是否有效?如果是這樣,那麼對ListItems進行相等比較。嘗試列表,因爲它可能會有不同的表現。如果不是,那麼你需要綁定到一個自定義的類,在那裏你實現GetHashCode並且覆蓋Equals,所以第一個1不等於最後的1. –
Paparazzi
2012-04-03 19:42:35
是的,如果33這樣工作的很好,因爲在集合之前沒有33。我必須使用ObservableCollection來滿足數據源的更改。它可惜綁定到自定義類的所有:( – alerya 2012-04-03 19:56:06