私のプロジェクトには と がTitleView
ありGameView
ます。プログラムを起動すると、TitleView
が表示されます。ユーザーがボタンをクリックするとGameView
表示されます。MainViewModel
目的のビューに切り替えるコマンドを含む MVVM Light を使用しています。
からMainViewModel.cs
GameViewCommand = new RelayCommand(() => ExecuteGameViewCommand());
private void ExecuteGameViewCommand()
{
CurrentViewModel = MainViewModel._gameViewModel;
}
TitleView.xaml で、このコマンドにアクセスする必要がありますが、その方法がわかりません。XAMLに関しては、私は非常に初心者です。
からTitleView.xaml
<UserControl x:Class="AoW.Views.TitleView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:vm="clr-namespace:AoW.ViewModels"
mc:Ignorable="d"
d:DesignWidth="1020"
d:DesignHeight="740"
Width="1020"
Height="740">
<Button Content="New Game"
//This needs to bind to GameViewCommand in MainViewModel.cs
Command="{Binding GameViewCommand}"
Grid.Column="1"
Grid.Row="1"
HorizontalAlignment="Center"
VerticalAlignment="Center" />
次の行を入れるとTitleView.xaml
...
DataContext="{Binding Main, Source={StaticResource Locator}}"
... にアクセスできますGameViewCommand
が、ローカル コマンドにアクセスできません。
ローカル コマンドの制御を維持しながら GameViewCommand にアクセスするにはどうすればよいですか?
追加のコードが役立つ場合は、お知らせください。