Добавление элемента в 2 родительских элемента - PullRequest
0 голосов
/ 22 ноября 2010

Я пытаюсь получить данные из XML, и если variable1 == variable2, он добавит элемент (listboxitem) к 2 родительским элементам (listbox - listbox1, listbox2). Я пытаюсь использовать следующий код:

if (variable1 == variable2)
{
    ListBox1.Items.Add(ListBoxItem);
    ListBox2.Items.Add(ListBoxItem);
}
else
{
    ListBox1.Items.Add(ListBoxItem);
}

Я думал обойти это, я мог бы дублировать ListBoxItem, но я не совсем уверен, как.

Любая помощь очень ценится: D

Спасибо!

Ответы [ 2 ]

0 голосов
/ 23 ноября 2010

Что вы можете сделать, это построить две ObservableCollections, содержащие ссылки на элементы из XML-данных, которые вы запросили.

Вместо применения приведенной выше логики к ListBoxItem, примените ее к каждой ссылке в данных XML и добавьте данные в collection1 / collection2.

Затем просто привяжите collection1 / collection2 к listBox1.ItemsSource и listBox2.ItemsSource.

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

0 голосов
/ 22 ноября 2010

Любой элемент управления в wpf и silverlight может появляться только один раз в дереве объектов.Таким образом, вы не можете добавить один ListBoxItem к нескольким ListBoxes.Вы можете создать «копию» таким образом

ListBoxItem itemToClone = ...
ListBoxItem clonedItem = new ListBoxItem();
clonedItem.Content = itemToClone.Content;

Так что, когда itemToClone.Content не является сам по себе элементом управления, а строкой или числом, у вас будет два элемента ListBoxItems, показывающих одинаковое содержимое.

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