【问题标题】:WPF Datagrid MouseBinding MVVMWPF Datagrid MouseBinding MVVM
【发布时间】:2018-02-02 13:34:20
【问题描述】:

我设法通过这个 xaml 处理了双击我的数据网格行以在我的视图模型上执行命令:

当我单击第一列区域中的某个位置(绑定到只读 ID)时,这非常有效,但是当在第二列中的文本框区域中双击时失败(CustomerNumber,当然捕获双击)。

在这两种情况下,哪一种类似于 MVVM 的方式来处理双击?

【问题讨论】:

    标签: wpf mvvm datagrid


    【解决方案1】:

    您可以将DataGridTextColumn 替换为DataGridTemplateColumn,并将MouseBinding 添加到CellEditingTemplate 中的TextBox

    <DataGridTemplateColumn Header="Customer Number">
        <DataGridTemplateColumn.CellTemplate>
            <DataTemplate>
                <TextBlock Text="{Binding CustomerNumber}" />
            </DataTemplate>
        </DataGridTemplateColumn.CellTemplate>
        <DataGridTemplateColumn.CellEditingTemplate>
            <DataTemplate>
                <TextBox Text="{Binding CustomerNumber}">
                    <TextBox.InputBindings>
                        <MouseBinding Gesture="LeftDoubleClick" 
                                      Command="{Binding DataContext.EditCommand, RelativeSource={RelativeSource AncestorType=DataGrid}}" />
                    </TextBox.InputBindings>
                </TextBox>
            </DataTemplate>
        </DataGridTemplateColumn.CellEditingTemplate>
    </DataGridTemplateColumn>
    

    【讨论】:

      猜你喜欢
      • 2020-02-13
      • 1970-01-01
      • 2021-07-17
      • 2013-08-03
      • 1970-01-01
      • 2011-04-22
      • 2011-03-05
      • 1970-01-01
      • 2018-05-16
      相关资源
      最近更新 更多