2017-06-12 2 views
1

再利用可能なジョグユーザーコントロールを作成したいと考えています。メインウィンドウにusercontrolを追加しました。Userコントロールボタンで親ウィンドウのコマンドを実行するには?

私はこの ユーザーコントロールボタンをクリックようにしたい - >「UpJogClickCommand」コール「をUpJogRelayCommand」 - > ..方法(UpJogMove)

を実行しかし、私のコードは動作していない私は、ボタンをクリックすると、メインのコードです'UpJogMove'

[JogButtonControl.xaml]

<UserControl> 
    <Grid> 
     <Button Command="{Binding UpJogClickCommand}"> 
    </Grid> 
</UserControl> 

[JogButtonControl.xaml.cs]

を実行しません

[MainWindow.xaml]

<StackPanel x:Name="TempSP" Grid.Column="7"> 
    <JogControl:JogButtonControl UpJogClickCommand="{Binding Path=UpJogRelayCommand}" 
</StackPanel> 

[MainWindow.xaml.cs]

private RelayCommand<object> _upJogRelayCommand; 
public ICommand UpJogRelayCommand 
{ 
    get 
    { 
     if (_upJogRelayCommand == null) 
     { 
      _upJogRelayCommand = new RelayCommand<object>(UpJogMove); 
     } 
     return _upJogRelayCommand; 
    } 
} 
private void UpJogMove(object notUsed) 
{ 
    Debug.Print("UpJogExcuted():"); 
    MoveToUpDirection(); 
} 
+0

私は 'JogButtonControl.UpJogClickCommand'プロパティ値を設定し、任意のコードが表示されません。プロパティ値を設定するのを忘れてしまっただけではない場合は、問題を確実に再現する良い[mcve]を提供する必要があります。また、問題が何であるかについてより具体的に説明してください。コードが何を正確にしているのか、あなたは何を代わりにしたいのですか、それを解決するために今まで何を試していますか、何が問題になっていますか? –

答えて

1

あなたは、例えば、ユーザーコントロールのXAMLでバインディングのソースオブジェクトを指定する必要がありますRelativeSourceプロパティを設定することで:

<UserControl> 
    <Grid> 
     <Button Command="{Binding UpJogClickCommand, 
          RelativeSource={RelativeSource AncestorType=UserControl}}"> 
    </Grid> 
</UserControl> 
+0

ありがとうございます! –

関連する問題