设置数据模板的文本
本文关键字:文本 置数据 | 更新日期: 2023-09-27 18:22:11
对不起,我是WPF的新手,我认为这很容易,但我现在不知道。
我有一个DataTemplate,我想用它作为TreeViewItem头(我从其他地方复制了这个模板,所以我真的不确定它在TextBlock部分做了什么):
<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);
我的问题是:显示了我在数据模板中设置的图标,但标题文本本身不再出现如何从C#代码中的DataTemplate填充TextBlock
HeaderTemplate
中的DataContext
是Header
,Header
是字符串,它没有Name
属性(它应该在哪里?)。
如果您只有一个字符串,则需要直接绑定到DataContext
:{Binding}
您可能还想了解有关调试数据绑定的信息,这会有所帮助。
试试这个。您应该检查您的输出窗口中的绑定错误,因为这种情况会发生在您的示例中
<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>