У меня есть проект, содержащий xaml ResourceDictionary, который я хочу использовать вне FrameworkElement. Словарь ресурсов будет содержать DataTemplate для класса, локального для проекта, чтобы избежать загрязнения app.xaml (так как проект является модулем призмы и не всегда будет присутствовать в зависимости от конфигурации).
Итак, у меня есть файл test.xaml с действием сборки Resource.
Это предназначено для предоставления DataTemplate для класса TestObject.
В классе TestObject у меня есть метод GetTemplate ()
Следующие работы:
DataTemplate GetTemplate()
{
Uri uri = new Uri("MyProject;component/test.xaml", UriKind.Relative);
var dict = new ResourceDictionary { Source = uri};
return (DataTemplate)dict["TestObjectDataTemplate"];
}
Это вызывает исключение, когда я присваиваю uri свойству ResourceDictionary.Source
DataTemplate GetTemplate()
{
Uri uri = new Uri("/test.xaml", UriKind.Relative);
var dict = new ResourceDictionary { Source = uri};
return (DataTemplate)dict["TestObjectDataTemplate"];
}
Второй пример завершается ошибкой, так как /test.xaml не может быть найден в локальной сборке. Зачем мне нужен доступ к нему с помощью "ReferencedAssembly; component / test.xaml"?
В данном случае означает ли локальная сборка исполняющуюся сборку или сборку, частью которой является код / ресурс?
Редактировать: Обновлено, чтобы отразить фактическую проблему.