У вас нет доступа к элементам управления в модели представления, вы выставляете свойства.
Представление, в свою очередь, привязывается к свойствам, предоставляемым моделью представления. В MVVM для вида DataContext
установлена модель вида.
Вид:
<Window … namespaces, etc. />
<Grid>
<TextBox Text={Binding InputText, Mode=TwoWay}
</Grid>
</Window>
ViewModel:
public class MyViewModel : INotifyPropertyChanged
{
string _text = "Enter text here";
public string Text
{
get { return _text; }
set
{
_text = value;
// raise property change notification
}
}
// implement INPC so the view will know when the view-model has changed
}
Теперь, если вы установите свойство DataContext
окна просмотра для экземпляра MyViewModel
, текстовое поле будет содержать текст «Введите текст здесь», поскольку его свойство Text
имеет значение bound для InputText
собственность. Если вы введете что-то еще в текстовое поле, свойство InputText
модели представления будет обновлено до этого значения.