Привязка данных UserControl в виде дерева - PullRequest
1 голос
/ 02 июля 2011

У меня есть UserControl, который содержит TreeView и TextBlock:

<TreeView ItemsSource="{Binding FirstGeneration}" AllowDrop="True"  Drop="TreeView_Drop" Width="300">

                <TreeView.ItemContainerStyle>

                    <Style TargetType="{x:Type TreeViewItem}">

                    <Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}" />
          <Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}" />
          <Setter Property="FontWeight" Value="Normal" />

                    <Style.Triggers>
            <Trigger Property="IsSelected" Value="True">
              <Setter Property="FontWeight" Value="Normal" />
            </Trigger>
          </Style.Triggers>
        </Style>
      </TreeView.ItemContainerStyle>

      <TreeView.ItemTemplate>
        <HierarchicalDataTemplate ItemsSource="{Binding Children}">
                    <StackPanel Orientation="Horizontal" >
                        <Image Source="{Binding Path=Image}" />
                        <TextBlock Text="{Binding Name}" />
                    </StackPanel>
                </HierarchicalDataTemplate>
      </TreeView.ItemTemplate>
    </TreeView>
     <TextBlock Height="23" Name="textBlock1" Text="{Binding= ???}" Width="187" />

Когда я выбираю элемент древовидной структуры, я хочу показать некоторую информацию, содержащуюся в элементе (например: имя выбранного элемента).

Моя проблема в том, что я не знаю, как сделать это связывание, потому что когда я выбираю элемент, вызывается установщик IsSelected класса элемента.

У вас есть лучшая практика для этого?

1 Ответ

1 голос
/ 02 июля 2011

Посмотрите на это в MSDN . А также BindableSelectedItemBehaviour здесь .

...