代码之家  ›  专栏  ›  技术社区  ›  Rodney Hickman MattW

为什么Xamarin表单的WebView绑定不能在iOS上刷新?

  •  0
  • Rodney Hickman MattW  · 技术社区  · 7 年前

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

            <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。任何建议都将不胜感激。

    1 回复  |  直到 7 年前
        1
  •  2
  •   Mac t3h Exi    7 年前

    所以如果有人遇到这个问题。这就是我最终在iOS和Android上都能工作的地方。

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

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

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

    下面是代码:

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

    这对我很有用。

    推荐文章