From d81a51e5df2673d3d80206c96eb2dc9185aef406 Mon Sep 17 00:00:00 2001 From: Paul Schneider Date: Fri, 30 Sep 2016 18:19:37 +0200 Subject: [PATCH] trying to fix the binding --- .../BookAStar.Droid/MarkdownViewRenderer.cs | 46 +++++++++++++------ 1 file changed, 31 insertions(+), 15 deletions(-) diff --git a/BookAStar/BookAStar.Droid/MarkdownViewRenderer.cs b/BookAStar/BookAStar.Droid/MarkdownViewRenderer.cs index b315bade..dd71776d 100644 --- a/BookAStar/BookAStar.Droid/MarkdownViewRenderer.cs +++ b/BookAStar/BookAStar.Droid/MarkdownViewRenderer.cs @@ -5,6 +5,7 @@ using Xamarin.Forms.Platform.Android; using BookAStar.Droid; using System; using Java.Interop; +using System.ComponentModel; [assembly: Xamarin.Forms.ExportRenderer(typeof(MarkdownView), typeof(MarkdownViewRenderer))] namespace BookAStar.Droid @@ -30,6 +31,7 @@ namespace BookAStar.Droid } } } + public class MarkdownViewRenderer : ViewRenderer { private WebView editorView; @@ -50,20 +52,7 @@ namespace BookAStar.Droid base.OnElementChanged(e); if (Control == null) { - editorView = new WebView(Context); - editorView.Settings.BuiltInZoomControls = true; - editorView.Settings.JavaScriptEnabled = true; - editorView.Settings.LoadsImagesAutomatically = true; - editorView.Settings.SetAppCacheEnabled(true); - editorView.Settings.AllowContentAccess = true; - editorView.Settings.AllowFileAccess = true; - editorView.Settings.AllowFileAccessFromFileURLs = true; - editorView.Settings.AllowUniversalAccessFromFileURLs = true; - editorView.Settings.BlockNetworkImage = false; - editorView.Settings.BlockNetworkLoads = false; - editorView.Settings.DomStorageEnabled = true; - // editorView.SetMinimumHeight(300); - SetNativeControl(editorView); + SetNativeControl(CreateNativeControl()); } if (e.OldElement != null) { @@ -80,7 +69,6 @@ namespace BookAStar.Droid InjectJS(JavaScriptFunction); } } - void InjectJS(string script) { @@ -90,5 +78,33 @@ namespace BookAStar.Droid } } + private WebView CreateNativeControl() + { + editorView = new WebView(Context); + editorView.Settings.BuiltInZoomControls = true; + editorView.Settings.JavaScriptEnabled = true; + editorView.Settings.LoadsImagesAutomatically = true; + editorView.Settings.SetAppCacheEnabled(true); + editorView.Settings.AllowContentAccess = true; + editorView.Settings.AllowFileAccess = true; + editorView.Settings.AllowFileAccessFromFileURLs = true; + editorView.Settings.AllowUniversalAccessFromFileURLs = true; + editorView.Settings.BlockNetworkImage = false; + editorView.Settings.BlockNetworkLoads = false; + editorView.Settings.DomStorageEnabled = true; + // editorView.SetMinimumHeight(300); + return editorView; + } + + protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e) + { + if (e.PropertyName == "Markdown") + { + SetMDEditorText(((MarkdownView)Element).Markdown); + } + base.OnElementPropertyChanged(sender, e); + } + + } } \ No newline at end of file