2010-08-05 59 views
1

假設我有一個鬆散的xaml文件,其中包含一個資源,鍵入「MyResource」,並通過ResourceDictionary.MergedDictionaries將該鬆散的xaml文件拖入兩個其他xaml文件。現在假設我把下面的代碼行同時在代碼隱藏文件的兩個XAML文件:鬆散的xaml文件導致的對象數

object obj = FindResource("MyResource"); 

都將引用是同一對象,或者它們將是不同的對象?

謝謝, 戴夫

+0

我敢打賭,它是一個具有多個對象的集合 – 2010-08-05 01:10:47

回答

0

答案取決於你如何加載鬆散XAML文件。如果您加載一次,並將相同的引用添加到兩個不同的MergedDictionaries,那麼默認情況下,您將獲得與「MyResource」相同的引用。

如果您加載XAML文件兩次,您將有效地創建ResourceDictionary的兩個實例(從而創建兩個資源實例)。

在單個ResourceDictionary中,您可以指定是否使用x:Shared屬性共享資源,默認情況下該屬性爲true。將其設置爲false將強制爲資源的每個請求創建新實例。使用此屬性有一些限制,在MSDN頁面上進行了解釋。

相關問題