Привязка XAML WebView к строке не работает в Xamarin Forms - PullRequest
0 голосов
/ 01 ноября 2018

Я новичок в C # и Xamarin Forms. У меня есть веб-просмотр и получение URL-адреса источника от API. (Для этого вопроса у меня есть жесткий код значения). Я связал исходный URL вместо добавления значения для источника в XAML. Но это не работает. В стеке и на форумах есть несколько решений. Я старался. Но не сработало. Кто-нибудь, пожалуйста, помогите мне справиться с этим.

Это мой XAML

    <?xml version="1.0" encoding="UTF-8"?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="MyProject.Views.NewRegistration.PrivacyWebView">
    <ContentPage.Content>
        <AbsoluteLayout HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand">
            <WebView Source="{Binding WebViewSource}" HeightRequest= "300" WidthRequest="250" Navigated="Handle_Navigated" VerticalOptions="FillAndExpand" AbsoluteLayout.LayoutFlags="All" AbsoluteLayout.LayoutBounds="0,0,1,1" />
            <ActivityIndicator x:Name="loader" IsRunning="true" IsVisible="true" AbsoluteLayout.LayoutFlags="All" AbsoluteLayout.LayoutBounds="0,0,1,1"/>
        </AbsoluteLayout>
    </ContentPage.Content>
</ContentPage>

Вот как я связываю источник. (Пробовал это в Codebehind и ViewModel тоже)

 public HtmlWebViewSource WebViewSource
{
    get
    {
        return new HtmlWebViewSource { Html = "https://www.stackoverflow.com" };
    }
}  

1 Ответ

0 голосов
/ 01 ноября 2018

Вы используете его неправильно, при использовании HtmlWebViewSource вам нужно указать фактический HTML вместо URL, на который вы хотите перейти. Если вы хотите перейти к URL-адресу, укажите его в свойстве Source.

Если вы хотите связать это, вы должны реализовать что-то вроде этого.

В вашей модели представления создайте строковое свойство:

public string UrlToGoTo { get; set; }

Затем установите его, как обычно, убедитесь, что INotifyPropertyChanged реализован каким-либо образом.

Затем подключите ваш WebView так: <WebView Source="{Binding UrlToGoTo}" HeightRequest= "300" WidthRequest="250" Navigated="Handle_Navigated" VerticalOptions="FillAndExpand" AbsoluteLayout.LayoutFlags="All" AbsoluteLayout.LayoutBounds="0,0,1,1" />

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...