1

我有一个 MVVM WPF 应用程序,其 TreeView 数据绑定到视图模型类。它本质上是一个文件浏览器。我想向层次结构添加“添加新文件夹”的功能。为了实现所需的功能,我要做的只是在我的数据模板中将 Textblock 切换为可编辑的 TextBox。这是我的数据模板的样子:

<TreeView.ItemTemplate>
            <HierarchicalDataTemplate ItemsSource="{Binding Children}">
                <StackPanel Name="tv_itempanel"
                            Orientation="Horizontal" 
                            Margin="2">
                    <Image Source="{Binding Icon}" Margin="4"/>
                    <TextBlock Name="treeitem_tblock" Margin="4" Text="{Binding Name}"/>
                    <TextBox Width="200" Visibility="Collapsed" Name="treeitem_tbox"/>
                </StackPanel>
            </HierarchicalDataTemplate>
</TreeView.ItemTemplate>

问题是我无法修改单个 TreeViewItem,因为树视图是数据绑定的。有任何想法吗?谢谢

4

1 回答 1

3

向您的 VM 对象添加一个bool IsEditable属性,并将其可见性绑定TextBox到 is(使用转换器将布尔值转换为Visibility枚举)。这样您就不需要TreeViewItem直接操作,只需将数据对象标记为可编辑,它就会自然地流向您的视图。

于 2010-06-02T19:55:06.870 回答