C# 获取标记单元格的DataGridCell行和列,并在其上构建一个按钮

C# 获取标记单元格的DataGridCell行和列,并在其上构建一个按钮,c#,mvvm,position,wpfdatagrid,datagridcell,C#,Mvvm,Position,Wpfdatagrid,Datagridcell,我有一个MVVM程序。在这个程序中,我有一个带有数据网格的视图。在这个数据网格中,我必须展示如下内容: 用户标记一些单元格,鼠标点击后,应在选定单元格上创建一个按钮。这里的第一个问题是,如何获取列和行。它位于SelectedCellsChanged事件参数中。在WPF MVVM Light的帮助下,我可以为我的ViewModel提供事件和参数,但我的同事已经在ViewModel中的可视元素方面遇到了问题(他在可视树中遇到了错误)。我知道视觉元素不应该在VM中。这里有人能给我一个方法让这个列和行

我有一个MVVM程序。在这个程序中,我有一个带有数据网格的视图。在这个数据网格中,我必须展示如下内容:

用户标记一些单元格,鼠标点击后,应在选定单元格上创建一个按钮。这里的第一个问题是,如何获取列和行。它位于SelectedCellsChanged事件参数中。在WPF MVVM Light的帮助下,我可以为我的ViewModel提供事件和参数,但我的同事已经在ViewModel中的可视元素方面遇到了问题(他在可视树中遇到了错误)。我知道视觉元素不应该在VM中。这里有人能给我一个方法让这个列和行产生吗

我的第二个问题是,我无法想象如何在正确的单元格中创建按钮。如果我认为正确,是否可以为每个按钮(具有属性StartRowSpawn、EndRowSpawn、startcolumnsawn、endcolumnsawn)或每个单元格构建一个新的VM

你能告诉我怎么解决这个问题吗

我也想到了网格。在MouseDown和MouseUp时获取位置,然后找到相应的Grid.Column和Grid.Row

编辑
好的,我已经解决了接口的第一个问题,但我已经有了第二个问题。有人能帮我吗?

我会重新思考为什么需要这样做(或者你可以解释更多为什么需要这样的按钮)。当我需要更改数据网格中的数据设计时,我要做的是使用datagrid行的备用datatemplate或details datatemplate来更改信息操作的格式,然后您可以使用相同的视图模型。可以将列跨距绑定到viewmodel中的特性,但如果希望按钮数量是动态的,则会变得很困难