相关疑难解决方法(0)

如何绑定命令以双击DataGrid中的行

我开发了一个WPF UserControl,旨在用作选择列表,如下所示:

  • 绑定到实体的CollectionView(例如Employees)的DataGrid
  • DataGrid上方的TextBox,可用于过滤DataGrid中显示的项目.

我想公开一个Command,当用户双击DataGrid中的一行时将执行该命令.然后,容器可以通过对DataGrid中的SelectedItem执行某些操作来对此做出反应.

到目前为止,我已尝试按如下方式处理双击:

<DataGrid IsReadOnly="True">
    <DataGrid.InputBindings>
        <MouseBinding MouseAction="LeftDoubleClick" Command="... />
    </DataGrid.InputBindings>
...
Run Code Online (Sandbox Code Playgroud)

但是,当用户单击DataGrid标头时,双击事件仍会触发.我希望能够限制它,以便只在双击位于DataGrid的主体中时才执行Command.是否有声明性的方法来做到这一点?

UPDATE

我刚刚开始研究WPF和MVVM,我真的在寻找如何实现像这样的低级可重用组件的指导.任何一般性建议也将被感激地收到和投票.就目前而言,我假设我希望这个UserControl:

  • 公开绑定到DataGrid的SelectedItem的依赖项属性"SelectedItem"

  • 公开当用户双击行时触发的RoutedEvent"ItemDoubleClick"或类似内容.

  • 从行双击事件处理程序实现ICommandSource和调用CommandHelpers.ExecuteCommandSource(this).

wpf datagrid icommand

9
推荐指数
1
解决办法
2万
查看次数

WPF和MVVM.绑定事件

我正在使用MVVM模式,RelayCommand等开发一个WPF应用程序.我在这个问题上阅读了很多,但我不清楚:

我想要做的就是移动一个形状,例如椭圆,然后捕捉它的最终位置,放入数据库.

但我不能将事件(MouseLetButtonDown,MouseLeftButtonUp和MouseMove)绑定到命令.我已经阅读了附加行为,但我需要事件的参数(MouseButtonEventArgs和MouseEventArgs)来检索位置.

解?

wpf events binding mvvm icommand

8
推荐指数
2
解决办法
1万
查看次数

在MVVM中处理MouseLeftButtonDown

我的XAML是:

<Setter Property="Template">
    <Setter.Value>
        <ControlTemplate>
            <Image Source="X.png" HorizontalAlignment="Left"
                                 Width="20" Height="20" 
                                 MouseLeftButtonDown="Image_MouseLeftButtonDown"/>
        </ControlTemplate>
    </Setter.Value>
</Setter>
Run Code Online (Sandbox Code Playgroud)

现在我关注MVVM.我需要更改代码以使其与ViewModel一起使用.如何MouseLeftButtonDown使用ViewModel 处理事件?

wpf xaml mvvm mouseevent controltemplate

4
推荐指数
2
解决办法
6360
查看次数

标签 统计

wpf ×3

icommand ×2

mvvm ×2

binding ×1

controltemplate ×1

datagrid ×1

events ×1

mouseevent ×1

xaml ×1