2012-01-31 28 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