2017-06-12 10 views
0

私のアンドロイドプロジェクトでは、webviewのURLは動的です。ビュー側でmvvmcrosバインディングを使用していますが、動的ではありません。ビューモデルのURLコンテンツが変更されてビュー上で更新されない場合誰か助けてくれますか?Xamarin Android:Viewmodelに基づく動的更新UI

ビュー

public string WebContentUrll { get; set; }  
protected override void OnCreate(Android.OS.Bundle bundle)  
{   
    var bindingSet = this.CreateBindingSet<view, ViewModel>(); 
    bindingSet.Bind(this).For(v => v.WebContentUrll).To(vm => vm.WebContentUrl).TwoWay();  
} 

のViewModel

private string webContentUrl;  
    public string WebContentUrl  
    {  
    get  
    {   
     return webContentUrl;  
    }  
    set  
    {   
     webContentUrl = value;   
     RaisePropertyChanged(() => webContentUrl);  
    }  
    } 
    public void Init() 
    { 
    webContentUrl = "https://.."' 
    } 

ページがロードされているが、アンドロイドビューを取得することができない後にビューモデルの変更で、WebコンテンツのURLの値新しい更新されたURL。

誰でも助言してください。ありがとうございました。

更新

Web表示は、ボタンのクリックで開かれ、URLがページをロードした後に、ボタンは、開口部のポストであなたの記述から

+0

ここで何をしようとしているのか分かりません。ビューでWebViewコントロールを使用していますか? ViewModelはURLの変更を担当していますか?あなたが今持っている方法では、単にビューのプロパティを変更します...新しいページをロードしません。 – Kiliman

答えて

1

をクリックする前に更新されます。アクティビティでは、プロパティWebContentUrllを定義しています。これをバインドして、変更されたときに何かを更新したいとします。

WebContentUrllの定義は次のとおりです。

public string WebContentUrll { get; set; } 

これは間違っていないとあなたはそれがViewModelにからあなたの結合を介して変更したときに値がWebContentUrllに反映されるはずです。ただし、ビジュアル状態、ビュー、またはそのプロパティに基づくものを更新するコードはありません。

あなたがのために内容を変更したいのWebViewを持っている場合は、あなたのような何かにあなたのプロパティを変更できます。_webViewWebViewのインスタンスであることを考えると

private string _webContentUrll; 
public string WebContentUrll 
{ 
    get => _webContentUrll; 
    set 
    { 
     _webContentUrll = value; 
     _webView.LoadUrl(_webContentUrll); 
    } 
} 

関連する問題