如何将HTML绑定到DataTemplate的WebView?

时间:2012-11-05 06:02:33

标签: c# xaml data-binding windows-8

  

可能重复:
  How to access NavigateToString property of a WebView in a ListView

我有一个项目列表,它们为每个显示的项目使用DataTemplate。在这个模板中,我有一个从API调用中获取的静态HTML Webview。 DataTemplate类似于以下内容:

<DataTemplate x:Name="DetailedPostTemplate">
        <Grid Height="600" Width="600">
            <Grid.RowDefinitions>
                <RowDefinition Height="2*"/>
                <RowDefinition Height="6*"/>
            </Grid.RowDefinitions>


            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="1*"/>
                    <ColumnDefinition Width="2*"/>
                </Grid.ColumnDefinitions>

                <StackPanel>
                    <TextBlock Text="{Binding Score}"/>
                    <TextBlock Text="Votes" />
                </StackPanel>

                <Grid Grid.Column="1">
                    <TextBlock Text="{Binding OwnerName}" />
                </Grid>
            </Grid>

            <!-- HTML Content Row -->

            <Grid Grid.Row="1">
                <WebView DataContext="{Binding Body}"/> <!-- What do I do HERE? -->
            </Grid>

        </Grid>
    </DataTemplate>

所有我能够找到的,将数据“传递”到Webview是使用NavigateToString方法,但由于我不知道列表中的项目数量,而且我我使用模板,我不能从C#方面调用它。如何使用XAML模板将此HTML连接到WebView?

1 个答案:

答案 0 :(得分:2)

WebView没有支持此功能的可绑定属性。有许多人编写了附加属性,允许您绑定到WPF和Silverlight WebView控件,这些控件应该可以在Windows 8中进行一些小的更改。请参阅示例this solution