2012-05-08 4 views
0

は私が達成したいのインタフェースです。XAMLのフォルダ/ファイルインターフェイス、適切なコントロールの選択?</p> <p><img src="https://i.stack.imgur.com/RPScz.jpg" alt="enter image description here"></p> <p>基本的に、これはフォルダ内のフォルダやファイルと1つのレベル深い構造である:ここでは

  1. フォルダを選択できない:あなたが見る スクリーンショットは私の試みは、私は必要ItemsControl

    物事の内側ItemsControlListBoxでこれをやっています。インタラクションはありません。

  2. 時間
  3. ファイルをドラッグして、私はそれを行う方法で今MVVM

を行って別の

  • すべてのフォルダにドロップすることができますで、「選択」することができ
  • 1つのファイルのみ - 複数したがって、ListBoxは複数の要素に重点を置いています。

    ドラッグアンドドロップを達成する方法はまだわかりません。

    私はTreeViewのコントロールについて考えていますが、どのように動作するのかは不明です。

    私はこのシナリオをどのように達成するための指針を見ています。

  • 答えて

    0

    1つのTreeViewと、2つのTreeViewItemsのスタイル "FolderLevelStyle"と "FileLevelStyle"。両方のブレンドからデフォークスタイルを抽出します。

    "FolderLevelStyle"では、IsMouseOverIsSelectedプロパティのすべてのトリガーを削除します。また、ItemContainerStyleを "FileLevelStyle"に設定します。

    これは、あなたが1と

    [「FolderLevelStyle」に]あなたはまたTrueからIsExpanded設定し、(そのボタンに影響を与えるすべてのトリガを削除など)コントロールテンプレートでToggleButtonを折りたたむことができ2.ポイント与える - これをユーザーがフォルダを「閉じる」ことはできません。

    ドラッグアンドドロップに関して、これにはいくつかのアプローチがあります。開始here。それをMVVMスキーマにどのように統合できるかをご覧ください。ファイルのDataTemplateのルートパネルに設定されるBehavior(または接続された動作)を作成することに夢中になります。

    +0

    ありがとうございます!これは私がそれについてどのように考えているかに沿っている。私はリストを含む1つのオブジェクト 'FolderOrFileItem'を作成し、使用するものを決定するためにいくつかのスイッチを使用しなければならないと思いますか?どのようにアイテムに応じて適切なスタイルをバインドするのですか?これにDataTemplateSelectorを使うべきですか? – katit

    +0

    私はある程度仕事をしましたが、バインドされたアイテムに応じて異なるスタイルを適用する方法はわかりません。なにか提案を? – katit

    +0

    あなたのケースでは、 "タイプごとにスタイルを選択"する代わりに、 "第1レベルスタイル1;第2レベルスタイル2"と見なす必要はありません。上記の答えから名前を考えて、 "FolderLevelStyle"を追加してください。 ' – XAMeLi

    関連する問題

     関連する問題