我是WPF的新手,我用它来建立一个销售点系统.
我有一个DataGrid绑定到一个主窗口控制ObservableCollection的Item,将要出售的收银员将进入/扫描项目每个项目的默认数量为1,但它是可用于收银员手动更改数量.
每当我更改数量时,它应该在我将单元格离开单元格到行中的另一个单元格时使用项目价格的总和更新总价格,但是不会发生,只有当我转到另一行时才更新源不是同一行中的另一个单元格.
无论如何在DataGrid更改单元格而不是行时强制更新源?
我的问题/情况非常类似于Wpf DataGrid SelectedItem在单元格编辑后失去绑定但我没有使用任何"自定义"WPF框架.我有一个实现模型INotifyPropertyChanged和IEditableObject,并绑定到一个网格ObservableCollection<T>.网格的SelectedItem属性绑定到VM上的属性.
有了一个断点,ViewModel.SelectedItem当我在网格中选择不同的行时,我可以看到我的属性发生了变化.但是,当我更改行上的值时,ViewModel.SelectedItem不再设置该属性,因为我将焦点更改为行.上面链接中标识的解决方案不起作用,因为我没有使用自定义WPF框架,只是裸WPF.
有任何想法吗?
// View model area
public IPurchaseorderItem SelectedItem
{
get
{
return _selectedItem;
}
set
{
if (_selectedItem != value)
{
_selectedItem = value;
SelectItemCommand.NotifyCanExecuteChanged();
RemoveItemCommand.NotifyCanExecuteChanged();
}
}
}
// XAML SelectedItem binding
<views:NoBindingGroupDataGrid SelectedItem="{Binding SelectedItem, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
// Special Grid to clear binding groups (read on a similarly themed SO question/answer)
internal sealed class NoBindingGroupDataGrid : DataGrid
{
private bool _editing …Run Code Online (Sandbox Code Playgroud)