Я хотел бы очистить текст ввода из моей модели представления, которая привязана там. В приведенном ниже коде я попробовал это с помощью команды Relay, но она не работает.
Чего я хочу добиться: При нажатии кнопки с именем AddQuestionToQuiz
, функция выполняется с помощью команды на кнопке. Функция OnCreateQuizClick()
, расположенный в моей модели просмотра, запускается, и эта функция должна очистить мой текст ввода, который я на данный момент не получаю.
Я также пытался использовать обычную команду вместо команды Relay, но и здесь она не хочет работать.
ИЗМЕНИТЬ: ПОД КОДОМ ВСЕ РАБОТАЕТ НОРМАЛЬНО - ОБНОВЛЕНО Код используется для очистки текста ввода при нажатии на кнопку в вашей модели представления, реализуя интерфейс INotifyPropertyChanged
.xaml - код
<Button x:Name="AddQuestionToQuiz" WidthRequest="200" Command="{Binding CreateQuizCommand}" Style="{StaticResource ButtonStyle}" Text="Add question to quiz"></Button>
ViewModel - код
internal class CreateQuizPageViewModel : INotifyPropertyChanged
{
// Quiz Name Input
public String QuizNameInput { get; set; }
private String quizQuestionInput = "";
public String QuizQuestionInput
{
get { return quizQuestionInput; }
set { quizQuestionInput = value; OnPropertyChanged(); }
}
public RelayCommand CreateQuizCommand { get; set; }
public CreateQuizPageViewModel()
{
CreateQuizCommand = new RelayCommand(OnCreateQuizClick);
}
public event PropertyChangedEventHandler PropertyChanged;
public void OnPropertyChanged(string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
public void OnCreateQuizClick()
{
QuizQuestionInput = "";
}
}