Tag: mvvm mouseevent

在后面的代码中访问ViewModel是否总是违反MVVM模式?

我真正不确定的一件事是如何将鼠标事件正确传递给ViewModel。 有一种使用交互扩展来绑定触发器的方法,例如: 从View到ViewModel的WPF事件绑定? 但是这并没有将MouseEventArgs转发给我所知,而且这个解决方案对我来说似乎并不优雅。 那么什么是正确的解决方案? 一种方法是注册事件并在后面的代码中处理它,例如: private void ListBox_PreviewMouseDown(object sender, System.Windows.Input.MouseEventArgs e) { var listbox = sender as ListBox; if (listbox == null) return; var vm = listbox.DataContext as MainViewModel; if (vm == null) return; // access the source of the listbox in viewmodel double x = e.GetPosition(listbox).X; double y = e.GetPosition(listbox).Y; vm.Nodes.Add(new Node(x, y)); […]

WPF / MVVM – 如何在ViewModel中双击TreeViewItems?

(注意 – 这是一个重新发布,因为我的第一个问题是在错误的标题下发布的:对不起!) 我有一个标准的WPF树视图,并有绑定项目来查看模型类。 我现在希望在双击项目时处理行为(打开文档visual-studio-style)。 我可以在树视图(显示xaml)的控件中触发事件处理程序,但是如何绑定到视图模型类上的特定行为 – 例如ProjectViewModel? 优先受ICommand实施者约束,因为这在别处使用…