Установить текст таблицы данных? - PullRequest
0 голосов
/ 31 января 2012

извините, я довольно новичок в WPF и думаю, что это довольно просто, но сейчас я понятия не имею.

У меня есть DataTemplate, который я хочу использовать в качестве TreeViewItem-Header (у меня естьскопировал шаблон откуда-то еще, поэтому я не совсем уверен, что он делает в части 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 # -коде?

Ответы [ 2 ]

1 голос
/ 31 января 2012

DataContext в HeaderTemplate - это Header, Header - строка, у нее нет свойства Name (где это должно быть в любом случае?).

Если у вас просто есть строка, которую вы хотите привязать непосредственно к DataContext: {Binding}

Возможно, вы захотите прочитать отладку привязок данных , это помогает.

0 голосов
/ 31 января 2012

попробуйте это.и вы должны проверить окно вывода на наличие ошибок привязки, потому что это происходит с вашим примером

<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>
...