通常,您可以通过简单的方法在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的命令。