我有一个包含数据网格的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/