Getting Xamarin Xaml Intellisense when the binding context is set in code
I’m working on an app where I navigate from one page to another, passing data by setting the new page’s binding context:
Navigation.PushAsync(new QuickNotePage() { BindingContext = quickNote});
When designing the Xaml for QuickNotePage
I was pained to see that Intellisense wasn’t working, because I wasn’t setting the bindingContext
for the page in Xaml.
A quick search led me to this page which pre-dates the current version of Xamarin, but nevertheless reminded me of the old design-time namespaces that were auto-generated when I worked on WPF and Silverlight.
This is the Xaml I’m using now to get Intellisense auto-completion and the ability to navigate to properties:
Before:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="QuickNoteForms.QuickNotePage">
<Label Text="{Binding Title}"/>
</ContentPage>
After:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="QuickNoteForms.QuickNotePage"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
xmlns:quickNoteViewModels="clr-namespace:QuickNote.ViewModels;assembly=QuickNoteForms"
d:DataContext="{d:DesignInstance quickNoteViewModels:QuickNoteViewModel}">
<Label Text="{Binding Title}"/>
</ContentPage>
Where QuickNoteViewModel
is the ViewModel class, and instance of which I set above when instantiating the page.