设置数据模板的文本?

对不起,我在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?


HeaderTemplateDataContextHeaderHeader是一个字符串,它没有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

上一篇: Set text of datatemplate?

下一篇: Bind TextBox on Enter