【发布时间】:2015-07-28 14:44:34
【问题描述】:
我有一个数据网格,它应该是供最终用户使用的“输入表”。 (用户提供数据,点击按钮,程序处理数据)
它绑定到一个 ObservableCollection(用户类包含简单的东西,如电子邮件、姓名、登录等)
一切工作正常绑定明智...但是,我想让用户更正他们的输入,即选择一行并将其从网格中删除,或清除几个单元格的内容等 - 并非所有字段都是强制性的。
但是,当按下 Del 键时,什么也没有发生。我尝试处理 previewKeyDown 事件等,但遇到了以下问题:
How I can Delete Selected Row in datagrid wpf?
这是否意味着我在使用绑定时无法删除项目?我不知道如何可靠地修改基础集合 - 我怎么知道是否应该删除 Name、Login、Email 的值以及我的集合中的哪个用户?
我认为双向绑定可以解决这个问题...
我的代码:
ItemsSource="{Binding ElementName=ThisUc,
Path=UsersToCreate,
Mode=TwoWay,
UpdateSourceTrigger=PropertyChanged}"
private ObservableCollection<User> _usersToCreate;
public ObservableCollection<User> UsersToCreate
{
get { return _usersToCreate ?? (_usersToCreate = new ObservableCollection<User>()); }
set
{
_usersToCreate = value;
RaisePropertyChanged("UsersToCreate");
ProgressBarMax = UsersToCreate.Count;
}
}
干杯
【问题讨论】:
-
绑定到视图模型中的选定项。按下删除键后,从 observablecollection 中删除该项目