未触发 WPF DataBinding propertychanged 事件

WPF DataBinding propertychanged event is not fired

型号:

public class Item
{
    public string ItemNo { get; set; }
    public double Qty { get; set; }
    public string Box { get; set; }
    public string SerialNo { get; set; }
}

视图模型:

 public Item ScanningItem 
    {
        get
        {
            return _scanningItem;
        }
        set
        {
            _scanningItem = value;

            RaisePropertyChanged("ScanningItem");
            if (AddItemCommand !=null)
                AddItemCommand.RaiseCanExecuteChanged();
        }
    }

查看:

问题:更改文本框中的值,Item-->ScanningItem 的 PropertyChanged 事件不会被触发。

在 MVVMLight 中,有一个功能,Model 可以在 PropertyChanged 时通知 ViewModel,有人知道如何使用该功能吗?

您提到了一个文本框,大概是您绑定到对象的 属性。这将不起作用,因为您没有更改对象的实例,仅更改了 属性.

的值

在这种情况下您有两种选择,您可以单独公开属性并触发 属性Changed 事件。或者,您可以在模型中实现 INotify属性Changed。

ViewModel

public string SerialNo
{
    get { return _scanningItem.SerialNo; }
    set
    {
        _scanningItem.SerialNo = value;
        RaisePropertyChanged("SerialNo");
    }
}