首页 > 解决方案 > 为什么 Xamarin Forms Webview 绑定不会在 iOS 上刷新?

问题描述

我正在使用 WebView 并构建自己的 html。我想将 webview 绑定到表单上其他地方的更改。这是我的xml:

        <WebView HorizontalOptions="FillAndExpand"
                 VerticalOptions="FillAndExpand" 
                 Margin="0">
            <WebView.Source>
                <HtmlWebViewSource x:Name="WebViewSoruce1" Html="{Binding Description}"/>
            </WebView.Source>
        </WebView>

这是我的描述模型代码:

    public string Description
    {
        get {
            return _description;
        }
        set
        {
            _description = value;
            RaisePropertyChanged();
        }
    }

这在 Android 上运行良好,但不适用于 iOS。任何建议将不胜感激。

标签: xamarinxamarin.formsxamarin.ios

解决方案


所以如果其他人遇到这个问题。这就是最终在 iOS 和 Android 上对我有用的方法。

我必须作为 WebViewSource 绑定到它的 Source 属性而不是 HTML。这是我的 XAML:

<WebView HorizontalOptions="FillAndExpand"
                 VerticalOptions="FillAndExpand" 
                 Margin="0"  Source="{Binding WebViewSource}"/>

在我的视图模型中,我有两个属性。一个绑定 HTML 更改,我将其命名为 Description。另一个是绑定到 WebViewSource。

下面是代码隐藏:

    public HtmlWebViewSource WebViewSource
    {
        get
        {
            return new HtmlWebViewSource { Html = _description };
        }
    }

    public string Description
    {
        get {
            return _description;
        }
        set
        {
            _description = value;
            RaisePropertyChanged();
            RaisePropertyChanged("WebViewSource");
        }
    }

这对我有用。


推荐阅读