1

TreeView データがビューモデル クラスにバインドされた MVVM WPF アプリがあります。基本的にファイルエクスプローラーです。階層に「新しいフォルダーを追加」する機能を追加したい。目的の機能を実現するために、私がやろうとしているのは、データ テンプレートで 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

bool IsEditableVMオブジェクトにプロパティを追加し、to isの可視性をバインドします(コンバーターを使用してブール値を列挙TextBox型に変換します)。Visibilityそうすれば、TreeViewItem直接操作する必要はなく、データオブジェクトを編集可能としてマークするだけで、ビューに自然に流れます。

于 2010-06-02T19:55:06.870 に答える