Значение текстового поля в silverlight + MVVM - PullRequest
0 голосов
/ 07 июля 2011

У меня есть xaml names Customer.xaml, например:

<Grid x:Name="customview" >
   <StackPanel x:Name="CustomPanel" > 
      <TextBox x:Name="CustomText" />
    </StackPanel>
</Grid

Используя MVVM, я создал ICustomerviewmodel и Customerviewmodel следующим образом:

public interface ICustomerviewmodel 
{
     ICommand SaveClientCommand { get; }
}

public class Customerviewmodel : ICustomerviewmodel , INotifyPropertyChanged
{
   ......
   private void ExecuteSaveClient()
   {
     //
   }

У меня вопрос, как я могу получитьзначение внутри функции ExecuteSaveClient (), чтобы сохранить это?

Ответы [ 2 ]

1 голос
/ 07 июля 2011
  • Вы должны объявить строковое свойство в вашей модели представления:

    public string CustomText { get; set; }

  • Назначьте datacontext пользовательского представления вашей моделью представления в конструкторе, надеюсь, эта сетка находится в пользовательском контроле или окне:

    this.customview.DataContext = new CustomerViewModel();

  • Привязать к этому свойству:

    <TextBox x:Name="CustomText" Text="{Binding CustomText}"/>

  • Реализация INotifyPropertyChanged , если требуется привязка TwoWay и уведомление.

Подробнее о привязке данных Silverlight здесь .

1 голос
/ 07 июля 2011

Используйте выражение привязки:

<TextBox x:Name="CustomText" Text="{Binding TestProperty}" />

Где TestProperty - это открытое свойство вашей модели представления, которое является текущим DataContext.

Если вы хотите обновить значениев вашей модели представления, и если это отражено в представлении, тогда установщик свойства TestProperty должен вызвать событие PropertyChanged в интерфейсе INotifyPropertyChanged, реализованном вашей моделью представления.

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