0

这是我想要实现的界面:

在此处输入图像描述

基本上,这是 1 级深度结构,文件夹和文件夹内的文件。您看到的屏幕截图是我尝试在内部ItemsControlListBox内部执行此操作ItemsControl

我需要的东西:

  1. 文件夹不可选择。没有互动,只是展示他们。
  2. 一次只能“选择”一个文件
  3. 文件可以从一个文件夹拖放到另一个文件夹
  4. 一切都在 MVVM 中完成

现在以我的方式 - 因此多个 ListBoxes 专注于多个不好的元素。

我还不知道如何实现拖放。

我正在考虑TreeView控制,但不确定它是如何工作的。

我正在寻找有关如何实现这种情况的指示。

4

1 回答 1

0

TreeView、两种TreeViewItems样式“FolderLevelStyle”和“FileLevelStyle”。从 Blend 中提取它们的默认样式。

在“FolderLevelStyle”中,删除所有触发器IsMouseOverIsSelected属性。此外,设置ItemContainerStyle为“FileLevelStyle”。

这将为您提供第 1 点和第 2 点。

[在“FolderLevelStyle”中] 您还可以在控件模板中设置IsExpandedTrue折叠ToggleButton(包括删除影响该按钮的所有触发器) - 这将不允许用户“关闭”文件夹。

关于拖放,有几种方法。从这里开始。了解如何将其集成到 MVVM 架构中。我倾向于创建将在文件项Behavior的根面板上设置的(或附加行为) 。DataTemplate

于 2012-05-08T19:40:19.697 回答