模型更改更新视图模型 WPF
本文关键字:模型 WPF 新视图 更新 | 更新日期: 2023-09-27 17:56:42
我在将模型更改更新回视图模型以便显示时遇到问题。在这个例子中,我有一个标签和一个按钮,当我按下按钮时,它将执行一些业务逻辑,并且应该更新屏幕上的标签。但是,当我的模型更改时,视图不会。知道我在这里做错了什么吗?
视图-
<Window.DataContext>
<vm:ViewModel>
</Window.DataContext>
<Grid>
<Label Content="{Binding Path=Name}"/>
<Button Command={Binding UpdateBtnPressed}/>
</Grid>
视图模型
public ViewModel()
{
_Model = new Model();
}
public string Name
{
get{return _Model.Name;}
set
{
_Model.Name = value;
OnPropertyChanged("Name");
}
}
public ICommand UpdateBtnPressed
{
get{
_UpdateBtn = new RelayCommand(param => UpdateLabelValue());
return _UpdateBtn;
}
private void UpdateLabelValue()
{
_Model.Name = "Value Updated";
}
型
private string name = "unmodified string";
public string Name
{
get{return name;}
set{name = value;}
}
试试这个:
private void UpdateLabelValue()
{
Name = "Value Updated";
}
看来你错过了实现INotifyPropertyChanged接口。
你的模型必须实现 INotifyPropertyChanged 例如;
public class Personel : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private string _name;
public string Name
{
get { return _name; }
set { _name = value; OnChanged("Name");}
}
void OnChanged(string pn)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(pn));
}
}
}