Как я могу получить количество родительской коллекции от ребенка? - PullRequest
0 голосов
/ 12 марта 2009

У меня есть ObservableCollection, назначенная ItemsSource списка. Listbox использует DataTemplate, в котором есть пользовательский элемент управления, в котором элементы привязаны к свойствам каждого listboxitem.

У меня есть кнопка вверх и вниз на пользовательском контроле, которая перемещает элемент вверх или вниз по списку. Список отсортирован по свойству, которое я меняю. Нажмите вверх или вниз, свойство DisplayOrder изменилось, я использую INotifyProperty, чтобы сообщить ObservableCollection, что ему нужно повторно отсортировать.

Каков наилучший способ для пользовательского контроля получить счетчик элементов, чтобы я мог отключить кнопку «вниз», когда элемент достигает нижней части списка. (Верх легко, я сравниваю с 0)

Ответы [ 2 ]

0 голосов
/ 21 марта 2009

Я вижу два способа справиться с этим.

Во-первых, необходимо передать дескриптор вашей коллекции каждому из ваших предметов (когда они будут добавлены в коллекцию), чтобы они могли вычислить, являются ли они первым или последним предметом сами.

Другой способ - предоставить доступные для записи свойства для ваших элементов, таких как CanGoUp и CanGoDown, и ваш родительский элемент управления станет ответственным за правильную настройку этих свойств. Я предпочитаю это решение, потому что оно отделяет поведение вашего родительского списка от дочерних элементов. Несмотря на то, что кнопки «вверх» и «вниз» расположены на дочерних элементах, это действительно функция родительского списка.

0 голосов
/ 12 марта 2009

listBox1.Items.Count? this.Parent.Controls.Count

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