Make the .ctor of the NavigableElement public
See original GitHub issueDescription
Hello, The NavigableElement is a public class but we can’t inherit it because the .ctor is internal.

Looks like a trick to resolve sealed inheritance - you can do it, we not.
Meanwhile, the NavigableElement implements a major feature - implicit styles, besides the shell navigation.
My question - Is there any reason to stop NavigableElement inheritance? Could you make the .ctor public?
Steps to Reproduce
So, why are we here:
- MAUI doesn’t support the DefaultStyle engine like WPF. We stopped using implicit style in our components and basically remove the whole XAML from our assemblies. There are performance and usage issues that we get tired to fix.
- There are special cases when we should set up the appearance of component parts, like
DataGrid.ColumnAppearance. TheColumnAppearancea not presented in the visual tree as an element. It’s a “logical element” that provides a way to set the properties for drawing. In this case, we need implicit styles for our customers! It’s super flexible to write XAML like:
...
<Resouces>
<Style TargetType="ColumnAppearance">
<Setter Property="Background" Value="Red"/>
</Style>
</Resouces>
We inherited our appearance class from VisualElement. It’s tricky and I don’t really like it:
- It’s WA and is not a quality solution. A lot of
VisualElementproperties (like Width, Height …) don’t work and are unnecessary. - We faced some issues with HotReload in this case (I go to sending a separate issue)
Link to public reproduction project repository
https://github.com/dotnet/maui
Version with bug
6.0 Release Candidate 2 or older
Last version that worked well
6.0 Release Candidate 2 or older
Affected platforms
iOS, Android, Windows
Affected platform versions
iOS 15
Did you find any workaround?
No response
Relevant log output
No response
Issue Analytics
- State:
- Created a year ago
- Comments:6
Top Results From Across the Web
NavigableElement Class (Xamarin.Forms)
Gets or sets a value that allows the automation framework to find and interact with this element. (Inherited from Element). BindingContext. Gets or...
Read more >NavigableElement Class (Microsoft.Maui.Controls)
Gets or sets a value that allows the automation framework to find and interact with this element. (Inherited from Element). BindingContext. Gets or...
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found

Hello, The issue affects many APIs in our DevExpress product line. According to our experience, inherited properties that don’t work, confuse users, and we would like to avoid this. Would you please clarify if there is a chance NavigableElement to become public in the next release or should we rely on the fact that this won’t change soon?
Could you explain the plans for it? What are you think about how long it’ll be implemented?