0

제너럴 사전 프로젝트에 여러 개의 리소스 사전이있는 xamarin PCL 프로젝트를 만들려고합니다.Xamarin 코드 양식에서 문자열을 통해 XAML 읽기

서로 다른 화면의 프로젝트 XAML 파일에서 모든 리소스 사전에 동일한 키가 정의되어 있지만 (이 키는 동적 리소스로 참조됩니다.) 각 리소스 사전의 값은 다릅니다 (용도에는 별도의 특정 클라이언트 요구 사항에 대한 리소스 사전). App.Xaml의 = 새 ResourceDictionary에

Current.Resources를 사용하여 뒤에 리소스 사전의 코드에로드 할 수

오전 수(); Resources.MergedWith = typeof (Sales); // Sales.xaml은 리소스 사전입니다.

이제 App.config (PCLAppConfig Nuget 패키지 사용)에서 리소스 사전의 이름을 전달하고 해당 경로와 함께 XAML 파일의 이름을 가져 오려고합니다. 우리가 XAMLReader.Load

어떤 도움이 정말 감사하겠습니다을 사용하여 WPF에서 할하는 데 사용하는 것처럼 뒤에 코드에서 XAML 파일을 읽을 수

오전 없습니다.

답변

1

각 ResourceDictionary에는 고유 한 유형이 있습니다 (예 : 매상.

따라서 유형을 이름에 종속되게하려면 리플렉션을 통해 유형을 얻을 수 있습니다.

var nameFromConfig = "Sale"; // Change to get from your config file 
var type = Type.GetType(nameFromConfig); 
Current.Resources = new ResourceDictionary(); 
Resources.MergedWith = type; 
+0

Type.GetType (nameFromConfig)을 사용하는 유형은 항상 null로 제공됩니다. 설정 파일에서 .xaml과 함께 이름을 사용하지 않고 시도했습니다. 파일 경로도 올바르게 설정됩니다. –

+0

해당 유형의 전체 네임 스페이스를 사용해야합니다. –

+0

여전히 전체 네임 스페이스를 사용하여 형식 이름을 가져올 수 없습니다. 다음은 코드입니다. - var fileName = ConfigurationManager.AppSettings [ "testkey"]; 문자열 파일 = @ "C : \ Users \ piyush.poddar \ Documents \ Visual Studio 2015 \ Projects \ App3 \ App3 \ App3 \ App3." + fileName; var type = Type.GetType (file); Current.Resources = new ResourceDictionary(); Resources.MergedWith = type; 다음과 같이 의 App.config 항목은 다음과 같습니다 - \t \t <키 = "testkey"값 = "sales.xaml"를 추가 /> 각 XAML 파일의 경우 \t

관련 문제