Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# UWP页面和CommandBar中的多个DataContext绑定_C#_Data Binding_Uwp - Fatal编程技术网

C# UWP页面和CommandBar中的多个DataContext绑定

C# UWP页面和CommandBar中的多个DataContext绑定,c#,data-binding,uwp,C#,Data Binding,Uwp,我需要将UWP页面中的某些特定元素绑定到与页面不同的VIewModel。 因此,在我的页面中,我绑定到一个DataContext: <Page DataContext="{Binding RootViewModel, Source={StaticResource Locator}}"> ... ... 我现在正尝试将bottomAppBar命令栏绑定到另一个ViewModel: <Page.BottomAppBar> <Comman

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

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

...
我现在正尝试将bottomAppBar命令栏绑定到另一个ViewModel:

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

但它不起作用,绑定不会出现在命令栏中。
为什么?

根据设计,
CommandBar
DataContext
无法传递到其
内容中。实际上,只有子元素的
DataContext
属性将自动获得与其父元素相同的
DataContext
,除非您通过为其指定另一个值来专门中断流

在您的情况下,
CommandBar
DataContext
将是
OtherViewModel
,但
Content
属性将保持
null

因此,与其手动设置
DataContext
,不如改为设置其
内容

<CommandBar Content="{Binding OtherViewModel, Source={StaticResource Locator}}">
    <CommandBar.ContentTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding Status}"></TextBlock>
        </DataTemplate>
    </CommandBar.ContentTemplate>

    ...
</CommandBar>

...

对匿名的懦夫否决投票人说:你为什么否决投票?请留下评论。