2013-02-27 72 views
1

我正在尋找有關如何在網頁視圖結合HTML,我發現這一點:如何綁定的HTML網頁視圖

public static class WebBrowserHelper 
{ 

public static readonly DependencyProperty HtmlProperty = DependencyProperty.RegisterAttached(
    "Html", typeof(string), typeof(WebBrowserHelper), new PropertyMetadata(null, OnHtmlChanged)); 

public static string GetHtml(DependencyObject dependencyObject) 
{ 
    return (string)dependencyObject.GetValue(HtmlProperty); 
} 

public static void SetHtml(DependencyObject dependencyObject, string value) 
{ 
    dependencyObject.SetValue(HtmlProperty, value); 
} 

private static void OnHtmlChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) 
{ 
    var browser = d as WebView; 

    if(browser == null) 
     return; 

    var html = e.NewValue.ToString(); 

    browser.NavigateToString(html); 
} 

}

和xamls代碼應該是

<WebView Grid.Column="1" Height="628" Margin="10,0" VerticalAlignment="Top" cxi:WebBrowserHelper.Html="{Binding Question.Body}" /> 

但我無法訪問此屬性在xaml中,我做錯了什麼?

+0

你得到什麼錯誤?它是否編譯? – 2013-02-27 21:33:08

+0

它甚至沒有編譯,我無法訪問webview標籤上的這個屬性。我唯一的信息是,它不能找到這個屬性 – 2013-02-28 13:19:29

+0

嘗試使WebBrowserHelper進入「公共抽象類WebBrowserHelper:DependencyObject」,看看是否有幫助。來自http://msdn.microsoft.com/en-us/library/windows/apps/hh701833.aspx上的示例。也許Windows Store API對附加屬性非常挑剔。 – 2013-02-28 13:50:13

回答

0

我看到你正在關注樣本列表here

沒有看到完整的XAML列表,我猜測你沒有命名空間的命名空間聲明。您可能從頁面複製了代碼並將其粘貼到您自己的名稱空間中的類中。你需要確保你有一個名字空間的前綴爲這個類所在的名字空間定義,然後才能使用它。

假設您在'MyStuff'命名空間中定義了WebBrowserHelper。您將使用:

xmlns:ms="using MyStuff" 

在您的xaml文件的頂部。再後來,你會用

ms:WebBrowserHelper.Html 

所以,你會使用MS的前綴而不是CXI前綴。

開發支持,設計支持和更多真棒善良的方式:http://bit.ly/winappsupport