使用 ScatterView 在 MVVM 中拖放

2024-02-19

我正在尝试在使用 MVVM 模式构建的 Surface 应用程序中实现拖放功能。我正在努力想出一种方法来实现这一点,同时遵守 MVVM 模式。虽然我尝试在 Surface 应用程序中执行此操作,但我认为该解决方案足够通用,也适用于 WPF。

我正在尝试产生以下功能:

  • 用户联系 ScatterViewItem 中的 FrameworkElement 以开始拖动操作(ScatterViewItem 的特定部分启动拖/放功能)
  • 当拖动操作开始时,将创建该 ScatterViewItem 的副本并将其强加到原始 ScatterViewItem 上,该副本是用户将拖动并最终放下的内容
  • 用户可以将项目拖放到另一个 ScatterView 项目中(放置在单独的 ScatterView 中)

整体交互与 Surface SDK 中提供的 ShoppingCart 应用程序非常相似,只是源对象包含在 ScatterView 而不是 ListBox 中。

我不确定如何继续以实现 ViewModel 之间的正确通信以提供此功能。我遇到的主要问题是当用户联系 FrameworkElement 时复制 ScatterViewItem。


您可以使用附加属性。创建一个附加属性并在 setproperty 方法中绑定到 droped 事件:


public static void SetDropCommand(ListView source, ICommand command)
        {
            source.Drop += (sender, args) =>
                               {
                                   var data = args.Data.GetData("FileDrop");
                                   command.Execute(data);
                               };
        }

然后,您可以将视图模型中的命令绑定到视图上的相关控件。显然,您可能希望将附加属性应用于特定的控件类型而不是列表视图。

希望有帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 ScatterView 在 MVVM 中拖放 的相关文章

  • 为什么无法将 WPFToolkit DataGrid ItemSsource 绑定到 DataTable?

    In a Telerik控制 我能够绑定DataTable直接到ItemSource 但是当我切换到 Codeplex 时WPFToolkit Datagrid
  • WPF DataGrid 绑定 DataGridCell 内容

    希望这将是一个非常简单的答案 我认为我只是没有看到众所周知的树木 我有一个 DataGridCell 样式 我想将单元格的内容绑定到图像的源属性 这是我目前使用的 XAML
  • 处理 TShellListView 后代中的文件放置

    我正在尝试创建 TShellListView 的后代 它接受从 Windows 资源管理器中删除的文件 我想在组件定义中处理拖 放操作 而不必在任何使用该组件的应用程序中实现它 我找到了接受从 Windows 资源管理器中拖放的文件的示例
  • 如何在 RichTextBox 中以编程方式移动插入符位置?

    我有一个 RichTextBox 其中的特殊文本位具有自定义格式 但是 存在一个错误 即插入字符后 插入符号会放置在新插入的字符之前而不是之后 这是因为对于每次编辑 代码都会重新计算内容以应用自定义格式 然后像这样设置 CaretPosit
  • 拖动元素时是否禁用 mousemove 事件?

    我试图通过在拖动元素时观察文档上的 mousemove 事件来移动元素 使用 html5 拖放 我在文档的父元素上添加了一个 mousemove 侦听器 每当我移动鼠标时都会触发该监听器 但是一旦我开始拖动另一个子元素 我就不再看到 mou
  • 重写 WPF 工具包图表中的 DataPointStyle

    我想覆盖DataPointStyle of the LineSeries在我的 WPF 工具包中Chart
  • 从 xaml 获取 RowIndex

    我有一个带有 DataGridTemplateColumns 的 DataGrid 在 TemplateColumn 中 我使用工作正常的 DataTrigger 它从 DataGrid 父级检索项目计数
  • x:将 ViewModel 方法绑定到 DataTemplate 内的事件

    我基本上问同样的问题这个人 https stackoverflow com questions 10752448 binding to viewmodels property from a template 但在较新的背景下x Bind V
  • 先学Silverlight还是先学WPF?

    看来 Silverlight WPF 是 NET 用户界面开发的长期未来 这很棒 因为我可以看到在客户端和 Web 开发端重用 XAML 技能的优势 但看看 WPF XAML Silverlight 它们似乎是非常庞大的技术 那么从哪里开始
  • Wpf TextBlock 中的垂直文本

    是否可以垂直显示 TextBlock 中的文本 以便所有字母彼此堆叠 不使用 LayoutTransform 旋转 还没有人提到使用纯 XAML 垂直堆叠任意字符串的字母 不旋转它们 的明显而简单的方法
  • 混合 MFC 和 WPF:模态对话框

    我使用 C CLI 界面层将 C WPF 对话框添加到现有的 C MFC 应用程序 我一切正常 只是我遇到了形式问题 例如 MFC 应用程序使用 ShowDialog 显示 WPF 对话框 按预期工作 该 WPF 对话框显示使用 DoMod
  • 如何在wpf中翻转图像

    我最近学习了如何使用 TransformedBitmap 和 RotateTransformed 类旋转 BitmapImage 现在我可以对图像进行顺时针旋转 但如何翻转图像呢 我找不到执行 BitmapImage 水平和垂直翻转的类 请
  • WPF控件默认大小

    为 wpf 应用程序定义自定义资源主题时 我可以设置宽度 高度等 如何找到这些属性的默认值 即框架中提供的控件中使用的值 WPF 控件通常不包含任何类型的默认大小 WPF 的主要功能点之一是 除非您指定大小 否则所有内容都会动态调整大小 如
  • 将 Pivot 控件与 Observable Collection MVVM 绑定(Windows Phone 8)

    我是 WP8 和 MVVM 的新手 我创建了 wp8 应用程序 一旦用户登录 它就会请求各种数据 我只是无法动态创建我的数据透视表头 我不知道这是否是因为我在绑定中做了一些事情 INotifyPropertyChanged 两者或其他 这是
  • 如何枚举控件的所有依赖属性?

    我有一些 WPF 控件 例如 文本框 如何枚举该控件的所有依赖属性 如 XAML 编辑器所做的那样 不需要使用反射 恕我直言 这是一个坏主意 因为框架已经为此提供了实用程序类 但它们并不明显找到 以下是基于这篇文章的答案 枚举绑定 http
  • 如何以编程方式调用应用程序菜单?

    我有自定义样式的非矩形透明窗口
  • Visual Studio 扩展找不到所需的程序集

    我为 Visual Studio 2013 编写了一个扩展 因为该死的组合框错误 https stackoverflow com questions 7800032 cancel combobox selection in wpf with
  • 阻止 WPF 文本框增长

    我花了两个小时研究如何避免在输入长文本时我的 WPF TextBox 控件变长 但我无法做到这一点 即使我读过一些关于它的答案 如下所示 停止 wpf textbox from grow with text https stackoverf
  • 使用 ICollectionView 过滤 ObservableCollection

    I have ObservableCollection绑定到dataGrid现在我想过滤我看到需要使用的呈现数据ICollectionView但我不知道如何添加ICollectionView和我的MVVM图案 我的代码简化如下 public
  • 创建带有部分的选项卡式侧边栏 WPF

    我正在尝试创建一个带有部分的选项卡式侧边栏 如 WPF 中的以下内容 我考虑过几种方法 但是有没有更简单 更优雅的方法呢 方法一 列表框 Using a ListBox并将 SelectedItem 绑定到右侧内容控件所绑定的值 为了区分标

随机推荐