0

我有一个包含 TreeView 控件的用户控件。我想根据TreeViewUserControl 类的依赖属性的值来设置's中使用**binding**Text属性的值。TextBlockTreeViewItemTemplateNodeDisplayProperty

我尝试了类似于下面显示的内容(但为 设置了正确的数据上下文NodeDisplayProperty),但它不起作用,因为拒绝“双重绑定”的Text属性。TextBlock

的属性DisplayMemberPathTreeView无法设置,因为我使用的是项目模板。

任何不涉及编写新绑定类的建议?理想情况下,我想要一个 XAML 解决方案,但如果您在后面的代码中执行此操作,您如何访问 XAML 定义的项目模板中代码块的绑定?

编辑:树中显示的项目来自模型,因此它们对 UI 元素不可见。

谢谢!

    <UserControl x:Class="TreeViewUserControl">
        <Grid>
            <TreeView ItemsSource="{Binding Path=Hierarchy}" HorizontalAlignment="Stretch" Name="treeHierarchy" SelectedItemChanged="treeHierarchySelectedItemChanged" >
                <TreeView.ItemTemplate>
                    <HierarchicalDataTemplate ItemsSource="{Binding Nodes}">
   <!-- Here --- -->    <TextBlock Text="{Binding Path={Binding NodeDisplayProperty}}" VerticalAlignment="Center" FontSize="13" >
                            <TextBlock.ContextMenu>
                                <ContextMenu>
                                    <MenuItem Command="userControls:Commands.RemoveNode">
                                    </MenuItem>
                                </ContextMenu>
                            </TextBlock.ContextMenu>
                        </TextBlock>
                    </HierarchicalDataTemplate>
                </TreeView.ItemTemplate>
                <TreeView.ItemContainerStyle>
                    <Style TargetType="{x:Type TreeViewItem}">
                        <Style.Triggers>
                            <!-- ... -->
                        </Style.Triggers>
                    </Style>
                </TreeView.ItemContainerStyle>
            </TreeView>
        </Grid>
    </UserControl>
4

0 回答 0