Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > WPF и Silverlight > WPF TreeView item binding


Автор: WSairus 4.6.2013, 19:52
Добрый день!
Прошу помочь разобраться с интересной проблемой - при изменении поля из TextBox не меняется его название в соответствующем элементе TreeView. Подробнее:
1. Есть TreeView:
Код

<TreeView ItemsSource="{Binding Pages}" AllowDrop="True" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" SelectedItemChanged="TreeViewSelectedItemChanged"/>

и TextBox привязанный к выбранному элементу TreeView 
Код

<TextBox VerticalAlignment="Center" Width="300" Text="{Binding Pages.Selected.Source}"/>

2. Шаблон данных
Код

<HierarchicalDataTemplate DataType="{x:Type Page}" ItemsSource="{Binding Pages}">
    <StackPanel Orientation="Horizontal">
        <Image Width="16" Height="16" Margin="3,0" Source="Images\Page16.png" />
        <Controls:EditableTextBlock Text="{Binding Source, Mode=TwoWay}" Controls:MouseDoubleClick.Command="{Binding Path=MouseDoubleClickCommand, RelativeSource={RelativeSource Self}}"/>
    </StackPanel>
</HierarchicalDataTemplate>

3. При редактировании Page.Source через TreeView (двойным щелчком по элементу EditableTextBlock) значение изменяется и изменяется имя элемента. При редактировании Page.Source через TextBox значение изменяется, но имя элемента TreeView остается прежним. Никак не могу понять почему, ведь везде вызывается метод OnPropertyChanged().

Автор: dzaraev 27.6.2013, 10:43
Можно несколько вопросов:
Цитата

значение изменяется и изменяется имя элемента.

Цитата

имя элемента TreeView остается прежним

Что за "имя элемента" имеется в виду?

Тип свойства Pages главного DataContext'a (который попадает к TreeView и TextBox)
тот же самый, что и тип свойства Pages класса Page?
Код определения типа Page (и Pages) был бы полезен. 

Главный вопрос - что пишет WPF в окне output при попытке изменить текст из TextBox'a и вообще (сообщения, начинающиеся с System.Windows.Data Error:) ? 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)