UWP Page和CommandBar中的多个DataContext绑定

时间:2017-07-01 14:43:48

标签: c# data-binding uwp

我需要将UWP页面中的某些特定元素绑定到与页面不同的VIewModel。
所以在我的页面中我绑定到一个DataContext:

<Page
    DataContext="{Binding RootViewModel, Source={StaticResource Locator}}">
...

我正在尝试将bottomAppBar CommandBar绑定到另一个ViewModel:

  <Page.BottomAppBar>
        <CommandBar DataContext="{Binding OtherViewModel, Source={StaticResource Locator}}">
            <CommandBar.Content>
                    <TextBlock Text="{Binding Status}"></TextBlock>

但它不起作用,CommandBar中不会发生绑定。 为什么呢?

1 个答案:

答案 0 :(得分:0)

按照设计,volatile的{​​{1}}不会传递给DataContext。实际上,子元素的CommandBar属性将自动获得其父元素的Content属性,除非您通过为其指定另一个值来专门打破流量。

在您的情况下,DataContext的{​​{1}}将为DataContext,但DataContext属性仍为CommandBar

因此,您应该设置OtherViewModel而不是手动设置Content

null