我有一个模型,我不希望它实现INotifyPropertyChanged:
public class PeopleModel
{
public string name { get; set; }
public string company { get; set; }
}
现在我有一个ViewModel:
public class DetailViewModel : CustomViewModelBase
{
private PeopleModel _person;
public PeopleModel person
{
get
{
return _person;
}
set
{
_person=value;
OnPropertyChanged();
}
}
public ICommand customOnUpdateCommand { get; set; }
}
现在,使用WPF并仅使用XAML,我将文本框内容绑定到名称(整个窗口已绑定到ViewModel):
<StackPanel
DataContext="{Binding Path=person}">
<DockPanel>
<Label Content="name" Target="{Binding ElementName=person_TextBox}" />
<TextBox x:Name="person_TextBox"
Text="{Binding Path=name, UpdateSourceTrigger=PropertyChanged}">
</TextBox>
</DockPanel>
</StackPanel>
现在,我想执行以下操作:当我更改此person对象中的name属性时,person对象应在ViewModel中引发“PropertyChanged”。或者,执行自定义命令,或执行一个方法(这会更好)。
我已经尝试过数据触发器,System.Windows.Interactivity或使用RelativeSource,但它们不起作用,也许我没有正确使用它们。
如何正确实现这一目标?
注意:我已经确认当文本框发生更改时,对象中的名称将正确更改。所以绑定过程是正确的。