private void GridSplitter_PreviewMouseDown(object sender, MouseButtonEventArgs e)
{
vm.positionX = e.GetPosition((sender as GridSplitter).Parent as UIElement).X;
}
Parent是VirtualizingStackpanel。 我有点理解指挥背后的想法,但我仍然无法理解如何实现它。此事件处理程序获取Mouse的X坐标并将其发送到ViewModel的positionX。如果我把它变成一个命令,我在哪里可以得到发送者和e的信息?
答案 0 :(得分:0)
通常,Commands
用于类似按钮的控件,当用户与它们交互时(单击按钮,点击它等),它会触发。
Command
,根据您的应用程序设计和需求,有一个CanExecute
和一个Executed
处理程序或事件。
这些允许你设置,如果Command
可以执行,以及在执行时会发生什么。
但是,您指的是PreviewMouseDown
事件。
您无法阻止系统触发此事件。因此,在这种情况下,新CanExecute
的{{1}}或多或少无用。
要实现目标,您可以使用评论中已指出的 Ganesh Command
机制。
This article以及下面的例子应该给你一个提示,它将如何运作:
EventToCommand