绑定WebBrowser控制视图模型WPF

时间:2018-08-27 01:53:17

标签: wpf mvvm binding webbrowser-control

问题:在WebBrowser(或类似控件)中显示一个网站,原始站点具有一个登录页面,该页面会引导您进入语句选择页面,一旦选择了商店并选择了“提交”日期,就会打开另一个页面,其中显示发票表。表格的HTML的ID为“声明”。

我的最终目标是获取表并解析数据行。

我尝试在View中添加WebBrowser控件,将源设置为站点。此方法有效,我能够登录,选择位置并查看对帐单页面。但是,我找不到将WebBrowser控件中的HTML绑定到ViewModel中的变量的方法。

<Border BorderBrush="Black" BorderThickness="1" Grid.Column="1" Grid.Row="2">
        <WebBrowser Source="www.google.com" />
    </Border>

如果我以后希望通过一个放置框更改此“源”,则该源也无法绑定。

下一个想法是在ViewModel中创建一个WebBrowser对象,将网站分配给WebBrowser的源,并将View中的WebBrowser绑定到ViewModel中的WebBrowser。

ViewModel的WebBrowser(第二次尝试)我出于安全性原因更改了网站:

<Border BorderBrush="Black" BorderThickness="1" Grid.Column="1" Grid.Row="2">
        <WebBrowser DataContext="{Binding StatementSite}"/>
    </Border>

ViewModel代码:

private WebBrowser _statementSite = new WebBrowser();

    public WebBrowser StatementSite
    {
        get { return _statementSite; }
        set {
            _statementSite = value;
            NotifyOfPropertyChange(() => StatementSite);
        }
    }


    public void StartProgressCommand()
    {
        StatementSite.Source = new Uri("https://www.google.com/");
        NotifyOfPropertyChange(() => StatementSite);
    }

当我以这种方式运行程序时,它会编译并没有错误地开始,但是视图中没有可见的站点,只有黑色控件。下面的原始方法显示了完美的网站,但我找不到将HTML绑定到ViewModel中的属性的方法。

<Border BorderBrush="Black" BorderThickness="1" Grid.Column="1" Grid.Row="2">
        <WebBrowser Source="http:\\www.google.com"/>
    </Border>

WebBrowser控件甚至是实现此目的的好方法吗?以及如何将HTML绑定到ViewModel或在ViewModel中构建WebBrowser控件并将其显示在视图中?

0 个答案:

没有答案