代码隐藏中无法识别XAML控件

Pau*_*els 3 c# xaml microsoft-metro winrt-xaml

我有一个奇怪的问题,在后面的代码中看不到XAML控件.以下是XAML的示例:

<ListView Name="lvtest" Grid.Row="2" Grid.ColumnSpan="2" Margin="0,20,0,0" 
              ItemsSource="{Binding Content}" >
    <ListView.ItemTemplate>
        <DataTemplate>     
            <StackPanel>                                
                <WebView Name="contentView" Style="{StaticResource BodyTextStyle}" />
                <TextBlock Name="testtxt" Text="{Binding}" Style="{StaticResource BodyTextStyle}" Foreground="GreenYellow"/>
Run Code Online (Sandbox Code Playgroud)

在后面的代码中:

this.lvtest 是公认的,但是:

this.contentView并且this.testtxt都不是.

我也试过了x:Name.

我显然遗漏了一些明显的东西,我只是看不出来.

编辑:

为了澄清,文本框控件将用于显示基于绑定的一些格式化文本,但我发现文本是HTML格式的(表明使用WebView控件).据我所知,我需要NavigateToString使用WebView控件,因此无法将其绑定.

Tim*_* S. 8

您缺少的是DataTemplate中定义的元素可能在页面上任意多次,甚至可以在运行时更改.哪一个应该与该contentView领域相关联?没有好办法回答这个问题,所以它根本就没有创建一个contentView字段.

换句话说,你没有定义页面包含那些元素,你要声明一个.NET可以创建元素的模板.

如果您告诉我们您是如何使用它的,我们可能会建议另一种方式.

编辑:这样的东西可能适合你:

<WebView Loaded="contentView_Loaded" Style="{StaticResource BodyTextStyle}" />
Run Code Online (Sandbox Code Playgroud)

然后在代码中:

void contentView_Loaded(object sender, EventArgs e)
{
    var contentView = (WebView)sender;
    var dataContext = (YourDataType)contentView.DataContext;
    // do something
}
Run Code Online (Sandbox Code Playgroud)