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

前端 未结 3 1892
庸人自扰
庸人自扰 2020-12-10 13:44

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?

相关标签:
3条回答
  • 2020-12-10 14:18

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

    0 讨论(0)
  • 2020-12-10 14:19

    There are several ways you can deal with this issue:

    ElementName binding is the most common approach, as Filip pointed out.

    You could walk visual tree till you find the parent. That is what FindAcestor does internally. You could dress it up in behavior for easy reuse.

    If you use view models you could use messages instead of bindings or you could add parent context to each child view model.

    Picking the best solution will depend on your specific circumstances.

    0 讨论(0)
  • 2020-12-10 14:22

    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}
      
    0 讨论(0)
提交回复
热议问题