2

私は次の.xamlを持っています:

<TreeView ItemsSource="{Binding EntityInstanceGroupings}">
    <TreeView.ItemTemplate>
        <DataTemplate>
            <TreeViewItem ItemsSource="{Binding EntityInstances}">
                <TreeViewItem.HeaderTemplate>
                    <DataTemplate>
                        <DockPanel LastChildFill="True">
                            <TextBlock Text="{Binding ...}" />
                            <Button Content="Add" DockPanel.Dock="Right" VerticalContentAlignment="Top">
                                ...
                            </Button>
                        </DockPanel>
                    </DataTemplate>
                </TreeViewItem.HeaderTemplate>
                <TreeViewItem.ItemTemplate>
                    ...
                </TreeViewItem.ItemTemplate>
            </TreeViewItem>
        </DataTemplate>
    </TreeView.ItemTemplate>
</TreeView>

行で:

<TextBlock Text="{Binding ...}" />

EntityInstanceGroupingsビューモデルにあるプロパティ「GroupName」にバインドしようとしています。私はこれを行うことができません(それが可能である場合でも)。どんな助けでも大歓迎です:)

4

3 に答える 3

3

を使用してこれを達成できるはずですRelativeSource

<TextBlock Text="{Binding RelativeSource={RelativeSource AncestorType=TreeViewItem},
    Path=DataContext.GroupName}" />
于 2012-09-18T23:12:21.553 に答える
0

私があなたの論理に従うことができれば、あなたTreeViewEntityInstanceグループのリストを取得します。TreeViewsrootNodesはこれらのグループです。に各グループの名前を表示しTreeView.ItemTemplateます。

この場合、DataContextともTreeViewItemEntityInstancesのグループであるTextBox必要があります。

つまり、をBindingプロップに直接設定するだけです。

<TextBlock Text="{Binding GroupName}" />
于 2012-09-19T06:18:46.583 に答える
0

私がやろうとしていたことは達成されましたが、私は自分が望んでいたことを達成するためのより良い解決策を見つけました。

<UserControl.Resources>
    <HierarchicalDataTemplate x:Key="entityTemplate">
        <TextBlock Text="{Binding LayoutName}" />
    </HierarchicalDataTemplate>

    <HierarchicalDataTemplate x:Key="groupingTemplate" ItemsSource="{Binding EntityInstances}" ItemTemplate="{StaticResource entityTemplate}">
        <DockPanel LastChildFill="True">
            <TextBlock Text="{Binding Name}" FontWeight="Bold"/>
            <Button Content="Add" DockPanel.Dock="Right" VerticalContentAlignment="Top">
                ...
            </Button>
        </DockPanel>
    </HierarchicalDataTemplate>    
</UserControl.Resources>

<!-- Instantiate the TreeView control -->
<TreeView ItemsSource="{Binding EntityInstanceGroupings}" ItemTemplate="{StaticResource groupingTemplate}" />
于 2012-09-19T20:01:35.427 に答える