Обновите графический интерфейс из источника данных в Silverlight - PullRequest
2 голосов
/ 23 июня 2011

У меня есть объект MyPerson со свойствами FirstName, LastName и FullName, где

public string FullName
{
    get {return LastName + " " + FirstName;}
    set {...}
}

Я связываю MyPerson с UserControl, в котором я связываю FirstName, LastName и FullNAme с 3 текстовыми полями.

Теперь, когда я изменяю FirstName или LastName, мне нужно указать UserControl на «обновление» FullName.

Какой должна быть эта команда «обновления»?

Silverlight 4

Ответы [ 2 ]

3 голосов
/ 23 июня 2011

Вам, вероятно, следует обратиться к интерфейсу INotifyPropertyChanged . Это сделает вашу жизнь НАМНОГО проще.


Пример:

public class Person : INotifyPropertyChanged
{
  public event PropertyChangedEventHandler PropertyChanged;

  private void NotifyPropertyChanged(String info)
  {
    if (PropertyChanged != null)
    {
      PropertyChanged(this, new PropertyChangedEventArgs(info));
    }
  }

  private String _FirstName;
  private String _LastName;

  public String FirstName
  {
    get
    {
      return this._FirstName;
    }
    set
    {
      if (this._FirstName != value)
      {
        this._FirstName = value;
        this.NotifyPropertyChanged("FirstName");
        this.NotifyPropertyChanged("FullName");
      }
    }
  }

  public String LastName
  {
    get
    {
      return this._LastName;
    }
    set
    {
      if (this._LastName != value)
      {
        this._LastName = value;
        this.NotifyPropertyChanged("LastName");
        this.NotifyPropertyChanged("FullName");
      }
    }
  }

  public String FullName
  {
    get
    {
      return String.Format("{0} {1}", this.LastName, this.FirstName);
    }
  }
}
1 голос
/ 23 июня 2011

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

Более подробную информацию можно найти здесь:
http://msdn.microsoft.com/en-us/library/ms229614.aspx

Кроме того, при изменении имени или фамилии вам также необходимо уведомить об изменении полного имени.

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