我有4个按钮绑定命令,我想使用tabcontrols完成这些命令。
<Button Margin="5" Width="Auto" Height="26" Content="operating" Command="{Binding PCmd}" CommandParameter="{Binding ElementName=frame}"/>
<Button Margin="5" Width="Auto" Height="26" Content="settings" Command="{Binding SettingCmd}" CommandParameter="{Binding ElementName=frame}"/>
<Button Margin="5" Width="Auto" Height="26" Content="showing" Command="{Binding DiCmd}" CommandParameter="{Binding ElementName=frame}"/>
<Button Margin="5" Width="Auto" Height="26" Content="controls" Command="{Binding DeviceCmd}" CommandParameter="{Binding ElementName=frame}"/>
<Frame x:Name="frame" Source="PPage.xaml" NavigationUIVisibility="Hidden" />
设置命令如下:
SettingCmd = new RelayCommand<System.Windows.Controls.Frame>
(
(f) =>
{
f.Navigate(new Uri(@"View\SettingPage.xaml", UriKind.Relative));
}
);
现在我进行了这些更改,如何添加命令来完成按钮中的命令,根据4个按钮有4个xaml页面
<controls:MetroAnimatedSingleRowTabControl Grid.Row="1" x:Name="MainTabControl">
<TabItem Header="operating"></TabItem>
<TabItem Header="settings"></TabItem>
<TabItem Header="showing"></TabItem>
<TabItem Header="controls"></TabItem>
</controls:MetroAnimatedSingleRowTabControl>
答案 0 :(得分:0)
由于不再需要框架,最好的方法是将每个页面的Xaml放入相应的TabItem中,例如:
<TabItem Header="settings">
//bring the Xaml of SettingPage.Xaml to here
</TabItem>
在这种情况下,它们不需要导航,也不需要命令,但如果你坚持将每个标签内容保存在一个单独的Xaml文件上,你必须首先在每个TabItem中定义一个Frame,并设置它的source属性到相应的Xaml页面:
<controls:MetroAnimatedSingleRowTabControl Grid.Row="1" x:Name="MainTabControl">
<TabItem Header="operating">
<Frame Source="View/OperatingPage.xaml" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" NavigationUIVisibility="Hidden"/>
</TabItem>
<TabItem Header="settings">
<Frame Source="View/SettingPage.xaml" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" NavigationUIVisibility="Hidden"/>
</TabItem>
<TabItem Header="showing">
<Frame Source="View/ShowingPage.xaml" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" NavigationUIVisibility="Hidden"/>
</TabItem>
<TabItem Header="controls">
<Frame Source="View/ControlsPage.xaml" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" NavigationUIVisibility="Hidden"/>
</TabItem>
</controls:MetroAnimatedSingleRowTabControl>
在这种情况下也不需要任何命令。