The following program has a MainPage that navigates to AnotherPage:
The navigation is initiated with a Button press. The Button's Command property is set to a little function in the code-behind file that does the navigation; the CommandParameter is set (in MainPage.xaml) to the type of AnotherPage.
AnotherPage is in a folder named OrganizationalFolder. Thus, its fully qualified named is XamlCompilationIssue.NavigationalFolder.AnotherPage. It appears in MainPage.xaml as local:OrganizationalFolder.AnotherPage.
The program has XAML compilation enabled for the assembly (in App.xaml.cs) but XAML compilation for MainPage is disabled. The program works as is.
However, if the [XamlCompilation(XamlCompilationOptions.Skip)] attribute in MainPage is commented out, the compilation fails with the error message that OrganizationalFolder.AnotherPage cannot be found.
The folder part of this was confusing at first. after downloading that multi-gig repo it was a bit clearer. This has nothing to do with folders at all, but with compound namespaces (VS, or r#, generates a namespace per folder, but that's all).
Usually, Xaml DO NOT supports compound namespaces, or nested classes because the syntax
could then mean
- instantiate an object of type whateverNamespaceDeclaredInTheLocalXmlns.OrganizationFolder.AnotherPage or
- assign the AnotherPage property (or Bindable, or attached) to the object
From looking at your reproduction, it looks like your issue is that the x:Type markup extension doesn't allow compound namespaces, and enabling that is harmless as there's no confusion possible.
Or at least, that the behavior should be coherent with XamlC or on off.
I'll investigate some more as soon as I finish downloading your multi-gigabytes repository...
The pull request in comment 3 should fix this issue. It has been merged and will be available in a future release.
Could you please provide me fixed version to verify this bug. Any steps to reproduce bug would be great.
I have verified this bug on latest xamarin.forms version - 18.104.22.1686-pre6 .
Followed following steps:
2.set properties build as none for mainpage.xaml.cs where it was enabled for app.xaml.cs
3.Commented [XamlCompilation(XamlCompilationOptions.Skip)] attribute in MainPage.
4.Clean & build project.
Didn't received any error as given in description where as error received on earlier forms version(2.3.4).
Link of screen cast- https://www.screencast.com/t/8A7Pfq4Kr
Gist version link- https://gist.github.com/nehaKh/b23c6bcb1d8fcc706ead38984057bbb8