我们假设我们有一个像这样的简单模型:
public class Person
{
public string Name { get; set; }
}
相应的视图模型:
public class PersonViewModel : INotifyPropertyChanged
{
public Image Image { get; set; }
public string Name
{
get { return _person.Name; }
}
private Person _person;
public PersonViewModel(Person person)
{
_person = person;
}
#region INotifyPropertyChanged
...
#endregion
}
最后是一个显示我们的人员的视图模型:
public class MainViewModel
{
public PersonViewModel SelectedPerson { get; set; }
public ObservableCollection<PersonViewModel> Persons { get; set; }
}
在视图方面,我们有这样的东西:
<DataGrid
ItemsSource="{Binding Path=Persons}"
SelectedItem="{Binding Path=SelectedPerson, Mode=TwoWay}"/>
如何以MVVM方式访问包装在SelectedPerson字段中的模型?
答案 0 :(得分:0)
为您的public
添加访问权限Person
public class PersonViewModel : INotifyPropertyChanged
{
private Person _person;
public Person Person
{
get
{
return _person;
}
set
{
_person = value;
RaisePropertyChanged();
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected void RaisePropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
然后,致电:
SelectedPerson.Person