diff options
author | Eric Maupin <ermaup@microsoft.com> | 2018-06-14 22:58:58 +0300 |
---|---|---|
committer | Eric Maupin <ermaup@microsoft.com> | 2018-06-14 22:59:00 +0300 |
commit | 5a4952861aafd89aba6535863d8f749116ef9785 (patch) | |
tree | 36a1c033b3315d55fdcaac03729ff0e01673f817 /Xamarin.PropertyEditing | |
parent | 331c9360db813096a53cbbc11b14b7460f2c6a9b (diff) |
[Core] Remove application resource source requirement
Fixes #305
Diffstat (limited to 'Xamarin.PropertyEditing')
-rw-r--r-- | Xamarin.PropertyEditing/ViewModels/CreateResourceViewModel.cs | 38 |
1 files changed, 31 insertions, 7 deletions
diff --git a/Xamarin.PropertyEditing/ViewModels/CreateResourceViewModel.cs b/Xamarin.PropertyEditing/ViewModels/CreateResourceViewModel.cs index dfb20d4..66873dc 100644 --- a/Xamarin.PropertyEditing/ViewModels/CreateResourceViewModel.cs +++ b/Xamarin.PropertyEditing/ViewModels/CreateResourceViewModel.cs @@ -108,7 +108,13 @@ namespace Xamarin.PropertyEditing.ViewModels return; if (!value) { - DefineInDocument = true; + if (HasDocumentSources) + DefineInDocument = true; + else if (HasApplicationSources) + DefineInApplicationSource = true; + else + DefineInApplication = true; + return; } @@ -132,7 +138,13 @@ namespace Xamarin.PropertyEditing.ViewModels this.defineIn = ResourceSourceType.Document; SelectedResourceSource = SelectedDocumentSource; } else { - DefineInApplication = true; + if (HasApplicationSource) + DefineInApplication = true; + else if (HasApplicationSources) + DefineInApplicationSource = true; + else + DefineInDocument = true; + return; } @@ -167,7 +179,13 @@ namespace Xamarin.PropertyEditing.ViewModels this.defineIn = ResourceSourceType.ResourceDictionary; SelectedResourceSource = SelectedApplicationSource; } else { - DefineInApplication = true; + if (HasApplicationSource) + DefineInApplication = true; + else if (HasDocumentSources) + DefineInDocument = true; + else + DefineInApplicationSource = true; + return; } @@ -191,6 +209,8 @@ namespace Xamarin.PropertyEditing.ViewModels } } + public bool HasApplicationSource => this.applicationSource != null; + public bool HasApplicationSources => (ApplicationSources?.Count ?? 0) > 0; public IReadOnlyList<ResourceSource> ApplicationSources @@ -341,14 +361,18 @@ namespace Xamarin.PropertyEditing.ViewModels docSources.Add (source); } - if (this.applicationSource == null) - throw new NotSupportedException ("You must define an application level resource source."); - ApplicationSources = appSources; SelectedApplicationSource = appSources.FirstOrDefault (); DocumentSources = docSources; SelectedDocumentSource = docSources.FirstOrDefault (); - DefineInApplication = true; + + if (HasApplicationSource) + DefineInApplication = true; + else if (HasDocumentSources) + DefineInDocument = true; + else if (HasApplicationSources) + DefineInApplicationSource = true; + await suggestedNameTask; } catch (Exception ex) { FatalError = ex.Message; |