背景: 我正在尝试使用xamarin表单来实现我想要的接口,并且我能找到的最接近的方法是使用一个使用网格调用contentview的页面。我将不得不实现我自己的顶部工具栏,菜单和tabbar。
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:prism="clr-namespace:Prism.Mvvm;assembly=Prism.Forms"
xmlns:local="clr-namespace:DNB_Prism_Map.Views"
prism:ViewModelLocator.AutowireViewModel="True"
x:Class="DNB_Prism_Map.Views.MergePage">
<StackLayout>
<Grid RowSpacing="0" ColumnSpacing="0" Margin="0" Padding="0">
<Grid.RowDefinitions>
<RowDefinition Height="20" />
<RowDefinition Height="40" />
<RowDefinition Height="*" />
<RowDefinition Height="47" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="0"/>
</Grid.ColumnDefinitions>
<BoxView BackgroundColor="#222222" Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2"/>
<local:ToolbarView x:Name="Toolbar" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2"/>
<BoxView x:Name="MenuCell" BackgroundColor="Gainsboro" Grid.Row="2" Grid.Column="0" Grid.RowSpan="2"/>
<BoxView x:Name="TargetCell" BackgroundColor="Yellow" Grid.Row="2" Grid.Column="1"/>
<local:TabbarView x:Name="Tabbar" Grid.Row="3" Grid.Column="1"/>
</Grid>
<AbsoluteLayout x:Name="Menu" AbsoluteLayout.LayoutBounds="0,0,-1,-1" AbsoluteLayout.LayoutFlags="PositionProportional" >
<local:MainPageMaster />
</AbsoluteLayout>
</StackLayout>
</ContentPage>
问题: 正如您在上面所看到的,我有加载的工具栏内容视图,在该工具栏上是一个绑定到ToolbarViewModel中的命令的按钮,这将切换ViewModel的属性。现在,我无法弄清楚当该属性的状态发生变化时如何在contentPage上运行方法。
我发现的示例只能连接到具有按钮的视图或页面,我希望它在使用按钮加载视图的页面上触发方法。 所有这些绑定,MVVM,事件对我来说都是新的,看起来过于复杂。