2010-11-22 92 views
0

我想从XML中检索数据,如果变量1 ==变量2,它会将元素(listboxitem)添加到2个父元素(listbox - listbox1,listbox2)。我尝试使用下面的代码:将元素添加到2个父元素

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

我的想法来解决这个问题我可能可以复制一个ListBoxItem但即时通讯不太清楚如何。

非常感谢任何帮助:D

谢谢!

回答

0

您可以做的是构建两个ObservableCollections,其中包含对来自您查询的xml数据的项目的引用。

不是将上面的逻辑应用于ListBoxItem,而是将其应用于xml数据中的每个引用并将数据添加到collection1/collection2。

然后只需将collection1/collection2绑定到listBox1.ItemsSource和listBox2.ItemsSource。

您有两个引用相同数据的列表框,而没有在树内复制ui控件的问题。

0

wpf和silverlight中的任何控件只能在对象树中出现一次。所以你不能添加一个ListBoxItem到几个ListBox。您可以创建一个“复制”这样

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

所以当itemToClone.Content本身不是控制而是一个字符串或一个数字,你将有两个ListBoxItems显示相同的内容。

+0

感谢您的快速回复,但我应该提到我在ListBoxItem中使用StackPanel,所以我仍然收到“元素已经是另一个元素的子元素”错误。 – Jamie 2010-11-22 20:36:48

+0

@Jamie:那好。那么这个`ListBoxItem`是如何创建的呢?你不能以同样的方式创建第二个吗? – 2010-11-22 20:47:32