我需要将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中不会发生绑定。 为什么呢?
答案 0 :(得分:0)
按照设计,volatile
的{{1}}不会传递给DataContext
。实际上,仅子元素的CommandBar
属性将自动获得其父元素的Content
属性,除非您通过为其指定另一个值来专门打破流量。
在您的情况下,DataContext
的{{1}}将为DataContext
,但DataContext
属性仍为CommandBar
。
因此,您应该设置OtherViewModel
而不是手动设置Content
。
null