Количество объектов, полученных в результате свободного файла xaml - PullRequest
1 голос
/ 05 августа 2010

Предположим, у меня есть свободный файл xaml с одним ресурсом с ключом «MyResource», и я извлекаю этот свободный файл xaml в два других файла xaml через ResourceDictionary.MergedDictionaries. Теперь предположим, что я поместил следующую строку кода в оба файла с выделенным кодом для двух файлов xaml:

object obj = FindResource("MyResource");

Будут ли обе ссылки на один и тот же объект или на разные объекты?

Спасибо, Dave

1 Ответ

0 голосов
/ 04 марта 2011

Ответ зависит от того, как вы загружаете свободный XAML-файл.Если вы загрузите его один раз и одна и та же ссылка будет добавлена ​​в два разных MergedDictionaries, то по умолчанию вы получите одну и ту же ссылку на ваш «MyResource».

Если вы дважды загрузите файл XAML, вы эффективно создадитедва экземпляра ResourceDictionary (и, следовательно, два экземпляра вашего ресурса).

В одном ResourceDictionary вы можете указать, является ли ресурс общим, используя атрибут x: Shared , который имеет значение trueпо умолчанию.Если для этого параметра установлено значение false, новые экземпляры будут создаваться для каждого запроса ресурса.Существуют некоторые ограничения на использование этого атрибута, которые описаны на странице MSDN.

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