如果你想讓你的數據網格和你的集合同步,你必須爲你的數據網格設置IsSynchronizedWithCurrentItem = true。你的集合應該是ICollectionView或BindingListCollectionView類型。您可以使用
this.view = CollectionViewSource.GetDefaultView(this.mysourcecollection)
如果您這樣做,則您選擇的項目始終保持同步。你可以使用你的ICollectionView的MoveTo方法來遍歷你的項目。
,如果您還有其他問題,只留下一些評論
編輯:
如果你使用數據表作爲collectionsource只是創建類型BindingListCollectionView的屬性
。
public BindingListCollectionView MyView
{ get;set;}
初始化數據表中的init的BindingListCollectionView以這種方式後:
this.MyView = (BindingListCollectionView)CollectionViewSource.GetDefaultView(this.mydatatable);
就用這個視圖的ItemsSource爲您的數據網格
<DataGrid ItemsSource="{Binding MyView}" IsSynchronizedWithCurrentItem="true" />
你現在能做的就是調用:
this.MyView.MoveCurrentToFirst();
this.MyView.MoveCurrentToLast();
this.MyView.MoveCurrentToNext();
this.MyView.MoveCurrentToPrevious();
//and some other
不幸的是,BindingSource.Current只是一個getter - 你不能設置它。 – MHTri 2011-04-28 11:27:50
對不起,我的意思是位置..編輯我的答案.. – 2011-04-28 11:30:06
啊右...我已經考慮了這兩個選項,除了WPF工具包的Datagrid控件(根據我的知識,沒有Datagridview)缺乏顯示行索引整數(沒有使用一些黑客,也就是),這是Position所要求的。除非你知道我沒有的東西! – MHTri 2011-04-28 11:32:13