Как добавить динамические свойства в пользовательский элемент управления - PullRequest
0 голосов
/ 15 марта 2012

Я создал windows custom control в C#, который наследуется от TextBox.

В моем контроле у ​​меня есть два свойства, а именно Continent и Country

Итак, мне нужно указать для выбора континент и страну для пользователя.

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

После того, как пользователь выбрал континент, список country должен быть заполнен странами выбранного континента.

я знаю, что могу использовать enum для этого

т.е.

public enum Continents {Asia , Africa, Antartica, Australia, Europe, NorthAmerica, SouthAmerica }

и собственность

public Continents  Continent { get; set; }

если я установлю таким образом, continent property предоставит пользователю dropdown list (список континентов из приведенного выше enum), из которого (из окна свойств) пользователь может выбрать.

Теперь моя проблема в том, что после выбора continen t пользователь должен выбрать country в окне свойств.

Пожалуйста, помогите мне сделать это

1 Ответ

0 голосов
/ 15 марта 2012

Хорошо, вам нужны два раскрывающихся списка:

  • Один на континент
  • Один для страны

У вас есть свойства в вашем пользовательском элементе управления, которые совпадают.

Первое, что вам нужно сделать, это получить список континентов и стран (возможно, в виде Dictionary со страной в качестве ключа (MSDN) ).

Привязка данных первого элемента управления к уникальным значениям в Словаре, что-то вроде var continents = myDictionary.Values.Distinct(); (MSDN)

Затем вы можете подключиться к SelectedIndexChanged (MSDN) , чтобы связать второй выпадающий список со странами, соответствующими выбранному континенту (вы можете получить выбранный элемент из первого текстового поля и затем выполнить поиск по ключу из словарь).

Надеюсь, это поможет - удачи!

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