実行時にNavigateToStringを使用できるように、WPF Webブラウザーにプロパティを追加しようとしていますが、例外が発生します。
SystemError:不明なメンバー'{clr-namespace:WebBrowserHelper; Assembly =helpers}WebBrowserHelper.Body'を設定できません。
これの作業バージョンがC#アセンブリにありますが、IronPythonを使用してどのように実行できるか知りたいです。
私のns宣言は次のようになります。
xmlns:helpers="clr-namespace:WebBrowserHelper;Assembly=helpers"
そしてそれはこのように使用されます:
<WebBrowser helpers:WebBrowserHelper.Body="{Binding html}" />
これはIronPythonコードです:
import clr
clr.AddReference("System.Windows")
clr.AddReference("WindowsBase")
clr.AddReference("PresentationCore")
clr.AddReference("PresentationFramework")
from System.Windows import (
DependencyObject, DependencyProperty
)
class WebBrowserHelper(DependencyObject):
_Body = None
def __new__(cls):
if notWebBrowserHelper._Body:
WebBrowserHelper._Body = DependencyProperty.RegisterAttached(
"Body", clr.GetClrType(str), clr.GetClrType(WebBrowserHelper), PropertyMetadata(WebBrowserHelper.OnBodyChanged))
return DependencyObject.__new__(cls)
def getBody(self):
return self.GetValue(WebBrowserHelper._Body)
def setBody(self, value):
self.SetValue(WebBrowserHelper._Body, value)
@staticmethod
def OnBodyChanged(dependancyObject, eventArgs):
dependancyObject.NavigateToString(eventArgs.NewValue)
Body = property(getBody, setBody)