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控件,因此无法将其绑定.
您缺少的是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)
| 归档时间: |
|
| 查看次数: |
5836 次 |
| 最近记录: |