我正在使用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方法。
答案 0 :(得分:0)
我认为CloseDialogCommand
正在执行并不奇怪 - 它表示对话框。
并且您正尝试在此对话框的上下文中执行AddPictureCommand
。
尝试找出如何将您的父作为DataContext
传递或者可能(可能更好的想法)使用专用MVVM解决方案将内容对话框(您的StackPanel)与某些代码绑定在一起。
在wiki of MaterialDesign project