Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to access Parent's DataContext in Windows 8 store apps

This is a common situation in XAML based apps (WPF/Silverlight/WinRT).

WPF related link -> WPF Databinding: How do I access the "parent" data context?

RelativeSource with AncestorType, and Mode=FindAncestor usually comes to rescue in WPF.

Both of these are missing in WinRT API. How to access the Parent's (may not be immediate one), DataContext?

(I am aware of TemplateBinding, and ElementBinding but both are not suitable mostly in DataTemplate).

like image 248
Tilak Avatar asked Mar 12 '13 16:03

Tilak


2 Answers

I just had the same problem. Presumably this is common??

Here is a crude solution that works:

  • Bind the Tag property of a top level element to the DataContext

    <Grid Name="gridTop" Tag="{Binding}" />
    
  • Bind the property you want via ElementName in nested element, ie

    {Binding Tag.SomeProp, ElementName=gridTop}
    
like image 177
LMK Avatar answered Nov 01 '22 05:11

LMK


ElementName binding is still possible and might work in your case. Otherwise you'd need to implement an attached behavior.

like image 39
Filip Skakun Avatar answered Nov 01 '22 05:11

Filip Skakun