设置数据模板的文本

本文关键字:文本 置数据 | 更新日期: 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中的DataContextHeaderHeader是字符串,它没有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>