Caliburn Micro void函数无法在DialogHost内部触发

问题描述 投票:0回答:1

通常,您可以通过简单的方法在View中调用void函数(来自ViewModel):

按钮名称= VoidFunctionInViewModel

按钮命令= {绑定路径= VoidFunctionInViewModel}

但是在DialogHost中访问此函数时,不会触发void函数。

我已经尝试将字符串字段检索到DialogHost,并且它可以正常工作,但是当涉及到按钮上的命令时,它将不起作用。

MainViewModel.cs命令:

public async void OpenDialog()
   {
       var confirm = new ConfirmationView{DataContext = this};
       await DialogHost.Show(confirm);
   }
   public void Accept()
   {
       Console.WriteLine("It Failed!");
   }
   public string Success {get; set;} = "Success"

ConfirmationView.xaml:

<Button Command="{Binding Path=Accept}" Content="Accept"/>
<Button Command="{x:Static materialDesign:DialogHost.CloseDialogCommand}" Content="Cancel"/>
<TextBlock Name="Success"/>

MainView.xaml:

<materialDesign:DialogHost DialogTheme="Inherit" CloseOnClickAway="True">
</materialDesign:DialogHost>

属性“成功”已成功使用,并由DialogHost显示。但是带有“接受”命令的按钮“接受”不是由DialogHost触发的。

按钮“ Cancel”正在工作,使用materialDesign的命令。

c# wpf caliburn.micro material-design-in-xaml
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.