我有一个包含数据网格的WPF应用程序。它绑定(bind)到我的列表对象“Orders”,如下所示。

public class OrderBlock
{
  public Settings setting;
  public List<Order> orders;
}
public class Order
{
  public int Amount;
  public string OrderID;
  public string OrderIDDup;
  public string Name;
  public string NameDup;
  public bool DupIDs;
  // and some string, int fields
}

由于无法控制的原因,可能有多个OrderID,因此有OrderIDDup属性。默认情况下,我的数据网格仅显示OrderID,而不显示OrderIDDup。

我想做的是让用户能够单击单元格ID,并加载另一个窗口以显示给他们另一个ID以及两个名称,并让他们选择应使用的ID。

我一直在阅读WPF DataGrid不支持双击单元格的功能。所以我有点不知所措,因为我应该如何着手解决这个问题。我可以看到的另一个问题是,当我尝试使用MVVM设计时(作为实用的词),这种事件如何暴露给我的 View 模型?

这也是显示此类信息的最佳方法。

任何帮助都会很棒,
谢谢,
中号

最佳答案

除了双击单元格外,您还可以双击网格

<DataGrid.InputBindings>
    <MouseBinding Gesture="LeftDoubleClick"
    Command="{Binding Edit}"
    CommandParameter="{Binding ElementName=UsersDataGrid, Path=SelectedItem}" />
</DataGrid.InputBindings>

在ViewModel中
    public ICommand Edit { get; private set; }

 Edit = new RelayCommand(EditUser, x => _isAdmin);



 private static void EditUser(object usr)
    {
        if (!(usr is User))
            return;

        new UserEditorViewModel(usr as User);
    }

关于c# - WPF Datagrid双击单元格MVVM设计,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18595654/

10-11 02:25