在 DataGrid 视图中,空白行添加条目很方便,但当列表很大时很快就会丢失。您可以将它的默认位置从 DataGrid 视图的底部更改为顶部吗?
1 回答
我很少使用 aDataGrid
并且对它添加行的能力一无所知,但是从 WPF/MVVM 的角度来看,无论如何您都不需要它。一般在 WPF/MVVM 中,我们操作的是数据而不是 UI 控件,所以解决起来很简单。首先,Bind
我们将数据(以我们选择的任何形状)收集到DataGrid.ItemsSource
属性中:
public ObservableCollection<DataItem> SomeDataCollection { get; set; }
...
<DataGrid ItemsSource="{Binding SomeDataCollection}" ... />
现在,如果我们想在底部添加一个新项目,DataGrid
我们可以在代码后面/视图模型中执行此操作:
SomeDataCollection.Add(new DataItem());
然后,如果我们想在集合的开头添加一个新项目,我们可以这样做:
SomeDataCollection.Insert(0, new DataItem());
当然,您需要INotifyPropertyChanged
在代码背后/视图模型中实现该接口才能使其工作,但是(希望)无论如何您都会这样做。
更新>>>
对不起,我误会你了。我在 MSDN 上找到了一个由Property使用的NewItemPlaceholderPosition
枚举。不幸的是,那些链接的页面没有代码示例,所以我在 wpf 数据网格中找到了一个如何获取顶部的空白行?在 StackOverflow 上发帖。来自@woodyiii 在该帖子中的回答:ItemCollection.IEditableCollectionView.NewItemPlaceholderPosition
var view = CollectionView.GetDefaultCollectionView(EmployeeList)
as IEditableCollectionView;
if(view!=null)
view.NewItemPlaceholderPosition = NewItemPlaceholderPosition.AtBeginning;
这确实意味着您必须使用 aCollectionView
才能使其工作,但这似乎是唯一的方法......NewItemPlaceholderPosition
除了各种CollectionView
类之外,任何东西都不会使用枚举。