2014-06-26 65 views
0

頂部我有一個DataGrid,我感動的空白行用戶輸入頂端與發送用戶輸入行的DataGrid

((IEditableCollectionView)MyGrid.Items).NewItemPlaceholderPosition = 
             NewItemPlaceholderPosition.AtBeginning; 

但是,當一個新的行中的用戶類型,該行轉到底部(有時在屏幕外),沒有任何反饋,用戶可能會認爲他的新排不見了。所以我想把它放在最前面。

我要像做

MyGrid.Insert(0, newRow); 

但我不知道該怎麼重寫,因爲它進入DataGrid中獲得訪問該行。現在我沒有明確地將用戶輸入的行放入DataGrid中,這會自動發生。

+1

你有一個的ItemsSource? –

+0

是的,我的ItemsSource是一個ObservableCollection。 – Imran

+0

好,所以在你的ItemsSource中插入一個項目,就像你在項目中做的一樣.. –

回答

0

下面是一個例子:

public ObservableCollection<MyDataItem> DataItems 
    { 
     get 
     { 
      List<MyDataItem> items = new List<MyDataItem>(5); 

      for (int i = 0; i < 5; i++) 

      { 
       items.Add(new MyDataItem { abc = abc[i], qrt = qrt[i], xyz = xyz[i] }); 
      } 

      var observable = new ObservableCollection<MyDataItem>(items); 

      var view = CollectionViewSource.GetDefaultView(observable) as IEditableCollectionView; 
      view.NewItemPlaceholderPosition = NewItemPlaceholderPosition.AtEnd; 

      return observable; 
     } 
    } 

XAML:

 <DataGrid ItemsSource="{Binding DataItems}" CanUserAddRows="True" />