【发布时间】:2019-10-15 17:45:08
【问题描述】:
通常您可以通过以下方式在 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 成功使用并显示了属性“Success”。 但是DialogHost不会触发带有Accept命令的按钮“Accept”。
“取消”按钮正在使用,来自 materialDesign 的命令。
【问题讨论】:
标签: c# wpf caliburn.micro material-design-in-xaml