2012-01-31 43 views
0

对不起,我在WPF中很新,我觉得这很容易,但我现在不知道。设置数据记录文本?

我有我想作为一个TreeViewItem报头使用(我从别的地方复制的模板,所以我真的不知道它做什么,在TextBlock的一部分)一个DataTemplate:

<Window.Resources> 
    <DataTemplate x:Key="WI_Bug"> 
     <DockPanel> 
      <Image Source="images\bug-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#代码中的DataTemplate填充TextBlock?

回答

1

HeaderTemplateDataContextHeader,该Header是一个字符串,它没有Name财产(其中是,应该是呢?)。

如果你只是有你想要直接绑定到DataContext的字符串:{Binding}

你也可能想在debugging data bindings读了,它帮助。

+0

谢谢,这很容易。 :) – Feroc 2012-01-31 13:15:37

0

试试这个。你应该检查你的输出窗口的绑定错误,因为这发生在你的例子

<Window.Resources> 
<DataTemplate x:Key="WI_Bug"> 
    <DockPanel> 
     <Image Source="images\bug-icon.png" Height="16" Width="16"/> 
     <TextBlock Text ="{Binding Path=.}"/> 
    </DockPanel> 
</DataTemplate> 
</Window.Resources> 
+0

H.B.太快了;) – blindmeis 2012-01-31 12:17:54

+0

他的确是! :) – 2012-01-31 12:19:06