【问题标题】:Get DataGridCell Row and Column of marked cells and Building a button over that获取标记单元格的 DataGridCell 行和列并在其上构建一个按钮
【发布时间】:2013-09-23 07:48:18
【问题描述】:

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

用户标记一些单元格,在 MouseUp 之后,应该在这些选定的单元格上创建一个按钮。这里的第一个问题是,如何获得 Column 和 Row。它位于 SelectedCellsChanged-Event 参数中。在 WPF MVVM Light 的帮助下,我可以为我的 ViewModel 提供 Event 和 Arg,但是我的同事已经在 ViewModel 中的视觉元素方面遇到了问题(他在视觉树中遇到了错误)。而且我知道视觉元素不应该在虚拟机中。谁能给我一个方法来获得这个 Column and Row-Spawn?

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

你能给我提示,如何解决这个问题?

我也想过网格。在 MouseDown 和 MouseUp 时获取位置,然后为此找到 Grid.Column 和 Grid.Row。

编辑

好的,我已经解决了第一个接口问题,但我已经遇到了第二个问题。有人可以帮我吗?

【问题讨论】:

    标签: c# mvvm position wpfdatagrid datagridcell


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-26
      • 2020-07-08
      • 1970-01-01
      • 1970-01-01
      • 2016-12-17
      • 2011-11-22
      • 1970-01-01
      相关资源
      最近更新 更多