2016-11-01 8 views
-1

Im пытается очистить данные, которые хранятся в текстовом поле в модели представления Я могу очистить это в представлении xaml с использованием .clear; но я не хочу использовать код заMVVM прозрачный текстовый поле в виде модели

<TextBox Name ="UserFirstName" HorizontalAlignment="Right" Height="23" Margin="119,67,0,0" 
    TextWrapping="Wrap" Text="{Binding User.FirstName, UpdateSourceTrigger=PropertyChanged}" 
    VerticalAlignment="Top" Width="163" TextChanged="UserFirstName_TextChanged"/> 

Я хочу, чтобы поля для обновления каждый раз, когда страница щелкнули

Любые предложения

+0

Пожалуйста, покажите код –

ответ

1

Text свойство вашего текстового поля должны быть связаны со свойством в viewmodel.

Когда вы изменяете значение свойства в режиме просмотра, текст в текстовом поле будет автоматически обновляться через привязку данных.

+0

в вопрос Текст * это * привязывается к модели представления ('Text =» {Binding User.FirstName, UpdateSourceTrigger = PropertyChanged} "') – ASh

+0

s есть способ, которым я могу это очистить с помощью кнопки clik –

+1

Ваша кнопка должна быть привязана к 'RelayCommand' в viewmodel, выставить это через свойство ICommand в режиме viewmode l и привязать свойство 'Command' кнопки к этому. Когда он вызывается, просто очистите текст в свойстве viewmodel. – LordWilmore

1

Текст привязан к объекту User.FirstName. Для обеспечения связывания данных работ, свойство имеет поднять PropertyChanged события:

public class UserViewModel : INotifyPropertyChanged 
{ 
    private string _firstName = ""; 
    public string FirstName 
    { 
     get { return _firstName; } 
     set { _firstName = value; OnPropertyChanged(); } 
    } 

    public event PropertyChanged; 

    private void OnPropertyChanged([CallerMemberName] string propertyName) 
    { 
      PropertyChanged?.Invoke(this, new PropertyChanedEventArgs(propertyName)); 
    } 
} 

MVVM опирающегося на INotifyPropertyChanged уведомить XAML UI об изменились в данных, связанном виде модели экземпляров.

Итак, как только вы хотите очистить FirstName, вы просто назначаете ему string.Empty, и пользовательский интерфейс будет автоматически обновляться.

0

Используйте этот код (исправленная версия)

Martin Zikmund

public class UserViewModel : INotifyPropertyChanged{ 
    private string _firstName = ""; 
    public string FirstName{ 
     get { 
      return _firstName; 
     } 
     set { 
      _firstName = value; OnPropertyChanged(); 
     } 
    } 

    public event PropertyChangedEventHandler PropertyChanged; 

    private void OnPropertyChanged([CallerMemberName] string propertyName = null){ 
     PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); 
    } 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^