我有 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>
我还使用方法创建 AppBarViewModel Play
(它是通过 CM 约定)。
当我第一次运行应用程序并打开 AppBar 时,我的按钮不起作用。但是,如果我隐藏并再次打开 AppBar - 一切都很好。
任何想法为什么它第一次不起作用?谢谢!
UPD: 调试中的输出窗口有错误:
Error: BindingExpression path error: 'AppBarViewModel' property not found on 'MusicMaker.ViewModels.AppBarViewModel, MusicMaker, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. BindingExpression: Path='AppBarViewModel' DataItem='MusicMaker.ViewModels.AppBarViewModel, MusicMaker, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'; target element is 'MusicMaker.Views.AppBarView' (Name='null'); target property is 'Model' (type 'Object')