未触发 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");
}
}
型号:
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");
}
}