2010-11-22 78 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