How to get ContentPage's BindingContext from ContentView?
By the time your constructor is called, the BindingContext
might not be initialised yet.
So, you should wait for the BindingContext
being changed to perform operations on it.
I think the answer is OnBindingContextChanged
event.
https://developer.xamarin.com/api/member/Xamarin.Forms.View.OnBindingContextChanged()
Little sample:
protected override void OnBindingContextChanged ()
{
base.OnBindingContextChanged ();
//BindingContext should not be null at this point
// and you may add your code here.
}
Note:
If you have a ContentView
inside a ContentPage
, unless explicitly set by another Control (like when using an ItemTemplate for a ListView) or by your code, the BindingContext
of the ContentView is the same as the ContentPage.
So, it shouldn't be necessary to call "Parent".
Let me know if more clarification is needed.
Fede Berco
Updated on June 04, 2022Comments
-
Fede Berco about 2 years
I have the following Contentpage.content, where I set certain binding context.
<StackLayout> <local:Post /> <local:Comments /> </StackLayout>
In Post.xaml.cs (ContentView), I've tried to get the binding context of the ContentPage this way but it doesn't work.
BindingContext = (PostViewModel)Parent.BindingContext;
How can I get the binding context of the ContentPage if I'm standing in a ContentView?