XAML WebView绑定到不在Xamarin Forms中的字符串

问题描述 投票:1回答:1

我是C#和Xamarin Forms的新手。我正在使用webview并从API获取源URL。 (对于这个问题,我对该值进行了硬编码)。我绑定了源URL而不是将值添加到XAML中的Source。但它不起作用。堆栈和论坛中的解决方案很少。我试过了。但没有奏效。有人请帮助我解决这个问题。

这是我的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" };
    }
}  
c# xamarin webview xamarin.forms
1个回答
2
投票

您使用的是错误的,在使用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" />

© www.soinside.com 2019 - 2024. All rights reserved.