Material Design WPF命令问题

时间:2016-03-22 07:38:18

标签: c# wpf

我正在使用Material Design for WPF。我正在尝试使用Dialogs。 这是我的对话框内容:

    <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>
...

据我所知,我正在向layout发送DialogContent对话。但是第一个按钮的命令正在运行(添加音频)。 第二个按钮&#39;添加图片&#39;将StackPanel发送给DialogContent。 Dialog正在运行,它确实出现但我的命令不起作用。这很奇怪,因为要关闭的命令正在运行。 问题是它没有进入Command Execute方法。

1 个答案:

答案 0 :(得分:0)

我认为CloseDialogCommand正在执行并不奇怪 - 它表示对话框。 并且您正尝试在此对话框的上下文中执行AddPictureCommand

尝试找出如何将您的父作为DataContext传递或者可能(可能更好的想法)使用专用MVVM解决方案将内容对话框(您的StackPanel)与某些代码绑定在一起。 在wiki of MaterialDesign project

上处理对话框的解决方案很少