XAML中的文件夹/文件界面,适当的控制选择?

时间:2012-05-08 17:31:46

标签: silverlight xaml mvvm drag-and-drop treeview

这是我想要实现的界面:

enter image description here

基本上,这是1级深层结构,文件夹和文件夹在文件夹中。 您看到的屏幕截图是我尝试使用ItemsControl内的ListBoxItemsControl进行此操作

我需要的东西:

  1. 文件夹无法选择。没有互动,只是展示它们。
  2. 只能“选择”一个文件
  3. 可以将文件从一个文件夹拖放到另一个文件夹
  4. 在MVVM中完成的所有事情
  5. 现在按照我这样做的方式 - 多个ListBox因此专注于多个不好的元素。

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

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

    我正在研究如何实现这种情况的指示。

1 个答案:

答案 0 :(得分:0)

一个TreeView,两个TreeViewItems样式“FolderLevelStyle”和“FileLevelStyle”。从Blend中提取defaukt样式。

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

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

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

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