Как связать словарь с ComboBox и текстовым полем? - PullRequest
0 голосов
/ 29 марта 2010

У меня есть Dictionary<String,Person>, где Person - это класс, определенный ниже

String role;

public class Person
{ 
  public string firstname{ get; set; } 
  public string lastname{ get; set; } 

  public string city{ get; set; } 
} 

Мой вопрос заключается в том, как связать ключ Dictionary: String с помощью ComboBox. имеет значение словаря: лицо, связанное с тремя текстовыми полями. То есть после выбора ключа в ComboBox соответствующее значение, имя, фамилия, город отображаются в трех текстовых полях соответственно?

Заранее спасибо!

1 Ответ

1 голос
/ 29 марта 2010

Примечание. Код, не допускающий копирования, существует ... существует исключительно для разъяснения сути вопроса.

View

Я вижу некоторые элементы управления с привязкой данных, как показано ниже в окне / представлении ...

<Combobox ItemsSource="{Binding Path=AlphabeticalIds}" Text="{Binding Path=SelectedId}"/>
<TextBox Text="{Binding Path=SelectedPerson.FirstName}"/>
<TextBox Text="{Binding Path=SelectedPerson.LastName}"/>
<TextBox Text="{Binding Path=SelectedPerson.City}"/>

ViewModel

Экземпляр этого класса устанавливается как текстовый текст представления. Он имеет следующие члены. (Они отображаются как .NET Properties; вызовы NotifyPropertyChange идентифицируют свойства, которые требуют уведомления об изменениях)

_mapIdToPerson = Dict...

_alphabeticalIds = _map...Keys.Sort();

_selectedId;
set 
{
  _selectedId = value;
  _selectedPerson = _mapIdToPerson[_selectedId];
  NotifyPropertyChange("SelectedId");
  NotifyPropertyChange("SelectedPerson");
}

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