将用户输入的行发送到DataGrid的顶部
本文关键字:DataGrid 顶部 用户 输入 | 更新日期: 2023-09-27 18:10:20
我有一个DataGrid,我用
将用户输入的空白行移动到顶部 ((IEditableCollectionView)MyGrid.Items).NewItemPlaceholderPosition =
NewItemPlaceholderPosition.AtBeginning;
但是,当用户键入新行时,该行会在没有任何反馈的情况下移到底部(有时离开屏幕),用户可能会认为他的新行只是消失了。所以我想把它放在最上面。
我想做一些像
MyGrid.Insert(0, newRow);
但我不知道重写什么来访问行,因为它进入DataGrid。现在我没有显式地将用户输入的行放入DataGrid,这是自动发生的。
下面是一个例子:
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" />