Мне трудно понять, как связать вложенные свойства экспонированной модели в модели представления с помощью MVVM Light.
У меня настроено следующее, и компонент 'StreetAddress' не обновляется, когда службаобновляет адрес:
Модель адреса:
public class Address : ObservableObject
{
private uint _streetNumber;
public uint StreetNumber
{
get
{
return _streetNumber;
}
set
{
Set(ref _address, value, nameof(StreetNumber));
}
}
}
Модель человека:
public class Person : ObservableObject
{
private Address _address;
public Address Address
{
get
{
return _address;
}
set
{
Set(ref _address, value, nameof(Address));
}
}
}
Модель представления QueryPerson:
public class QueryPersonViewModel : ViewModelBase
{
public Person QueriedPerson { get; set; }
public Address QueriedPersonAddress
{
get
{
return QueriedPerson.Address
}
}
...
}
Фрагмент представления QueryPerson:
<Grid DataContext="{Binding QueriedPersonAddress}">
...
<TextBox Text="{Binding StreetNumber, Mode=OneWay}" />
</Grid>
Придерживается ли приведенный выше шаблон передовой практики MVVM?Есть ли лучший способ привязки к вложенным свойствам из представления?По какой причине текст TextBox не будет обновляться, если вызывается установщик адресов?