Реализация любой команды обычно находится в модели просмотра.
Обычно используется фреймворк или вспомогательный класс.
Например:
https://riptutorial.com/mvvm-light/example/32335/relaycommand
publi c class MyViewModel {.....
public ICommand MyCommand => new RelayCommand(
() =>
{
//execute action
Message = "clicked Button";
},
() =>
{
//return true if button should be enabled or not
return true;
}
);
Здесь есть анонимный метод с этой "нажатой кнопкой "в нем.
Это захватит переменные в родительской модели просмотра.
Таким образом, вы можете установить свойство publi c в модели просмотра, привязанное к свойству text в вашем представлении.
Чтобы представление ответило, вам необходимо реализовать inotifypropertychanged и поднять свойство, измененное в установщике этого свойства publi c.
https://docs.microsoft.com/en-us/dotnet/framework/wpf/data/how-to-implement-property-change-notification.
Из приведенного выше.
Если PersonName был привязан к текстовому блоку в представлении.
public string PersonName
{
get { return name; }
set
{
name = value;
// Call OnPropertyChanged whenever the property is updated
OnPropertyChanged();
}
}
В команде вы можете сделать:
PersonName = "Andy";
Что вызывает установщик PersonName и текстовый блок, связанный с PersonName, прочитают новое значение.