2017-03-14 1 views
1

나는 다음과 같은 XAML 코드가 :WPF에서 명령 바인딩의 기본 매개 변수는 무엇입니까?

<Window x:Class="MVVM.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
     xmlns:local="clr-namespace:MVVM" 
     mc:Ignorable="d" 
     Title="MainWindow" Height="350" Width="525"> 
    <Grid> 
     <Button Content="abc" Command="{Binding Path=MyCommand}" Grid.Row="1" /> 
    </Grid> 
</Window> 

MyCommand 동안 ICommand의 속성입니다. 명령은 문제없이 호출되지만 매개 변수는 항상 null입니다.

기본값으로 사용하거나 DataContext 설정에 문제가 있습니까?
내가 잘못했으면 무엇을해야합니까?

  • 나는 매개 변수는 디버거에서 널 알고, 내 명령 코드가 항상 함께 메시지 박스를 보여줍니다 (p) => { System.Windows.MessageBox.Show(p?.ToString() ?? "p is null"); }을, 때문에 "P는 null입니다."
+0

다른 모든 것들이'string test = "example text";'와 같은 안정적인 문자열을 시도하기 전에 테스트를 위해 나타나면 바인딩에 사용하십시오. 그러면 문제가 'p' 문자열 변수에 있습니다. –

답변

3

매개 변수를 사용하려면 xaml에 CommandParameter="..."을 추가해야합니다. 그러나 당신이했던 것처럼 매개 변수없이 명령을 사용하기를 원할 필요는 없습니다. 그들은 선택 사항입니다.

+1

난 그저 Command Bindings가 EventTriggers가 eventArgs에 전달할 수있는 디폴트 값을 전달할 것이라고 덧붙일 것이다. – MikeT

+0

답변을 주셔서 감사합니다. 어떤 명령이 기본 매개 변수를 가지고 있는지 조회 할 수있는 곳이 있습니까? –

관련 문제