2016-03-22 46 views
0

WPF用マテリアルデザインを使用しています。私はダイアログを使用しようとしています。私もダイアログを生成するどのようなボタンが付いたボックスをポップアップしているマテリアルデザインWPFコマンドの問題

<materialDesign:DialogHost.DialogContent> 
       <Label></Label> 
      </materialDesign:DialogHost.DialogContent> 

: はここに私のダイアログコンテンツです。ポップアップダイアログは以下のようにDialogHostの内側にある:

    <materialDesign:PopupBox.ToggleCheckedContent> 
         <materialDesign:PackIcon Kind="Close" Width="24"> 
        </materialDesign:PopupBox.ToggleCheckedContent> 
        <StackPanel> 
    <Button ToolTip="Add Audio" Background="#449AB8" BorderBrush="#449AB8" Command="{Binding AddAudioCommand}"> 
          <materialDesign:PackIcon Foreground="White" Kind="Microphone" /> 
         </Button> <!-- This Command is working--> 

     <Button ToolTip="Add Picture" Background="#449AB8" BorderBrush="#449AB8" Command="{x:Static materialDesign:DialogHost.OpenDialogCommand}"> 
          <materialDesign:PackIcon Foreground="White" Kind="Camera" /> 
          <Button.CommandParameter> 
           <StackPanel Margin="16"> 
            <TextBlock HorizontalAlignment="Center" FontSize="15">Add Image</TextBlock> 
            <Button Style="{StaticResource MaterialDesignFlatButton}" 
             IsDefault="True" 
             Margin="0 10 10 0" 
             Command="{Binding Path=AddPictureCommand}"> 
             Attach from disc 
            </Button> 
            <Button Style="{StaticResource MaterialDesignFlatButton}" 
             IsCancel="True" 
             Margin="0 8 8 0"> 
             Take a photo 
            </Button> 
            <Button Style="{StaticResource MaterialDesignFlatButton}" 
             IsCancel="True" 
             Margin="0 8 8 0" 
             Command="materialDesign:DialogHost.CloseDialogCommand"> 
             <Button.CommandParameter> 
              <system:Boolean>False</system:Boolean> 
             </Button.CommandParameter> 
             Discard 
            </Button> 
           </StackPanel> 
          </Button.CommandParameter> 
         </Button> 
</stackpanel> 
... 

私はDialogContentにダイアログのlayoutを送っています理解しています。ただし、最初のボタンのコマンドが機能しています(Add Audio)。 2番目のボタン '画像を追加'はStackPanelDialogContentに送信します。ダイアログが動作していますが、表示されますがコマンドが機能しません。閉鎖命令が働いているので変だ。 問題はCommand Executeメソッドには入りません。

答えて

0

CloseDialogCommandが実行中であることが奇妙ではないと思います - それはあなたのダイアログに示されています。 このダイアログのコンテキストでAddPictureCommandを実行しようとしています。

あなたの親をDataContextとして渡す方法、または多分(おそらく良いアイデア)専用のMVVMソリューションを使用してコンテンツダイアログ(あなたのStackPanel)といくつかのコードをバインドすることを試みてください。 ダイアログを扱うソリューションはほとんどありません。wiki of MaterialDesign project