C# CaliburnMicro首次将消息附加到AppBar中的按钮时不起作用

C# CaliburnMicro首次将消息附加到AppBar中的按钮时不起作用,c#,windows-runtime,caliburn.micro,C#,Windows Runtime,Caliburn.micro,我有一个叫ShellView的售票员。它包含StartView,我在其中创建Appbar。但在我的应用程序中有很多其他视图,appbar在所有屏幕上看起来都很相似,所以我制作了AppBarView和AppBarViewModel。 我的AppBar定义如下: ***StartView*** <Page.BottomAppBar> <AppBar x:Name="BottomAppBar"> <Grid HorizontalAlignment

我有一个叫ShellView的售票员。它包含StartView,我在其中创建Appbar。但在我的应用程序中有很多其他视图,appbar在所有屏幕上看起来都很相似,所以我制作了AppBarView和AppBarViewModel。 我的AppBar定义如下:

***StartView***

<Page.BottomAppBar>
    <AppBar x:Name="BottomAppBar">
        <Grid HorizontalAlignment="Right" >
            <local:AppBarView Caliburn:Bind.Model="{Binding AppBarViewModel}" />
        </Grid>
    </AppBar>
</Page.BottomAppBar>

***AppBarView***

<StackPanel Orientation="Horizontal">
    <Button Name="Play"  Style="{StaticResource PlayAppBarButtonStyle}" />
</StackPanel>
***StartView***
***AppBarView***
我还使用方法
Play
(按照CM惯例)创建AppBarViewModel

当我第一次运行应用程序并打开AppBar时,我的按钮不起作用。但如果我再次隐藏并打开AppBar,一切都会很好

你知道为什么第一次不起作用吗? 谢谢大家!

UPD: 调试中的输出窗口中有错误:


错误:BindingExpression路径错误:“在”MusicMaker.ViewModels.AppBarViewModel,MusicMaker,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null“上找不到“AppBarViewModel”属性。”。BindingExpression:Path='AppBarViewModel'DataItem='MusicMaker.ViewModels.AppBarViewModel,MusicMaker,版本=1.0.0.0,区域性=中立,PublicKeyToken=null';目标元素是“MusicMaker.Views.AppBarView”(Name='null');目标属性为“Model”(类型为“Object”)

我有两个建议供您参考,Alexei,但它们可能不起作用,但至少您可以尝试一下:

  • Caliburn:Bind.Model=“{Binding-AppBarViewModel}”替换为
    Caliburn:View.Model=“{Binding-AppBarViewModel}”
  • 如果第一个选项不起作用,请检查此选项以查看作者最初是如何查看的,请注意,他在
    Caliburn:Bind.Model=“{binding-AppBarViewModel}”中使用了字符串而不是绑定标记

  • 这就是我所能说的。希望有帮助。

    StartView和AppBarView是否在不同的XAML文件中定义?是的。这是不同的文件。StartViewModel包含AppBarViewModel。在Visual Studio中以调试模式运行应用程序时,输出控制台中是否出现任何绑定错误,以及绑定中使用的AppBarViewModel是否定义为StartViewModel上的属性?@Sniffer谢谢!是的,有一个错误。有关问题,请参阅更新。