c# - 无法通过依赖属性从 ViewModel 访问控制方法
问题描述
我想在 ViewModel 中调用Webview2控件的方法。
我在这篇文章中 引用了实现(Command Chaining ):<br /> Access a Control Method from a ViewModel
我在我的 WPF 应用程序中模仿了这个实现。
首先,我创建了一个继承自 WebView2 类的“ CustomWebView
”类,
并添加了一个名为“ GoBackCommand ”的依赖属性
public class CustomWebView : WebView2
{
public ICommand GoBackCommand
{
get { return (ICommand)GetValue(GoBackCommandProperty); }
set { SetValue(GoBackCommandProperty, value); }
}
public static readonly DependencyProperty GoBackCommandProperty =
DependencyProperty.Register(
"GoBackCommand", typeof(ICommand), typeof(CustomWebView), new PropertyMetadata(null));
public CustomWebView()
{
GoBackCommand = new RelayCommand(() =>
{
this.GoBack();
});
}
}
其次,我在 ViewModel 类中添加了一个属性“ GoBackCommand ”
private ICommand goBackCommand;
public ICommand GoBackCommand
{
get { return goBackCommand; }
set
{
goBackCommand = value;
OnPropertyChanged(nameof(GoBackCommand));
}
}
我想将“GoBackCommand”从控件绑定到 ViewModel。(一种来源方式)
所以在 Xaml 代码中,我这样写:
<ctrl:CustomWebView Source = "{Binding HtmlPath}" GoBackCommand="{Binding GoBackCommand, Mode=OneWayToSource}" />
但它不起作用。
GoBackCommand在 ViewModel中始终设置为 null。
为什么不起作用?这个实现有什么问题吗?</p>
非常感谢。
解决方案
推荐阅读
- office365 - 根据邮件头拒绝邮件(在 Office365 中)
- php - 如何解决使用 gmail 发送电子邮件的错误?
- javascript - 如何检查我的图像是否保存在 Heroku 服务器上
- sql-server - 进行正确的连接和使用 STUFF
- laravel - Laravel 从模型自动生成视图
- c# - 与 NuGet 系统引用的多个程序集冲突
- redirect - TestCafe - 可以将“preserveUrl”设置为自己的值吗?
- c# - 我可以在不安装 R 的情况下使用 R.Net
- linear-programming - 将分层定价编写为线性程序
- amazon-web-services - AWS c++ SDK Aws::CognitoIdentityProvider::CognitoIdentityProviderClient InitiateAuth