设置数据模板的文本?
对不起,我在WPF中很新,我觉得这很容易,但我现在不知道。
我有一个我想用作TreeViewItem-Header的DataTemplate(我从其他地方复制了模板,所以我不太确定它在TextBlock部分的作用):
<Window.Resources>
<DataTemplate x:Key="WI_Bug">
<DockPanel>
<Image Source="imagesbug-icon.png" Height="16" Width="16"/>
<TextBlock Text ="{Binding Path=Name}"/>
</DockPanel>
</DataTemplate>
</Window.Resources>
现在我用C#代码创建一个新项目:
TreeViewItem tvi = new TreeViewItem();
tvi.HeaderTemplate = (DataTemplate) this.Resources["WI_Bug"];
tvi.Header = "I am a bug";
treeView1.Items.Add(tvi);
我的问题:显示了我在数据模板中设置的图标,但标题文本本身不再显示。 我怎样才能从DataTemplate的C#代码中填充TextBlock?
HeaderTemplate
的DataContext
是Header
, Header
是一个字符串,它没有Name
属性(应该是哪里?)。
如果你只有一个字符串,你需要直接绑定到DataContext
: {Binding}
您也可能想要了解调试数据绑定,它有帮助。
尝试这个。 你应该检查你的输出窗口是否有绑定错误,因为这发生在你的例子中
<Window.Resources>
<DataTemplate x:Key="WI_Bug">
<DockPanel>
<Image Source="imagesbug-icon.png" Height="16" Width="16"/>
<TextBlock Text ="{Binding Path=.}"/>
</DockPanel>
</DataTemplate>
</Window.Resources>
链接地址: http://www.djcxy.com/p/44633.html