Binding WebBrowser управляет моделью представления WPF - PullRequest
0 голосов
/ 27 августа 2018

Проблема: Показать веб-сайт в веб-браузере (или аналогичном элементе управления). Исходный сайт имеет страницу входа, которая ведет к странице выбора выписки, после выбора магазина и выбора даты «отправить» открывается другая страница, на которой отображаетсятаблица счетов.HTML-код таблицы имеет идентификатор «Statement».

Моя конечная цель - получить таблицу и проанализировать строки данных.

Я попытался добавить элемент управления WebBrowser в View., установив источник на сайт.Это сработало, и я смог войти, выбрать местоположение и просмотреть страницу с заявлением.Однако я не смог найти способ связать HTML в элементе управления WebBrowser с переменной в ViewModel.

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

Также «источник» не может быть привязан, если я хочу иметь возможность изменить это вбудущее с раскрывающимся списком.

Следующая идея заключается в создании объекта WebBrowser в ViewModel, назначении веб-сайта источнику WebBrowser и привязке WebBrowser в представлении к WebBrowser в ViewModel.

Веб-браузер ViewModel (2-я попытка) Я изменил веб-сайт для безопасности:

<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 или создать элемент управления WebBrowser в ViewModel и отобразить его в представлении?

...