gpt4 book ai didi

c# - 使用 MVVM 单击 DataGrid 单个单元格行和列

转载 作者:行者123 更新时间:2023-12-03 10:35:29 26 4
gpt4 key购买 nike

我有 DataGrid,我正在尝试使用 MVVM 获取所选单元格的单元格详细信息(列、行​​和值),并避免对后面的代码进行任何更改。

我的数据网格看起来像这样

<DataGrid x:Name="MyDataGrid" IsSynchronizedWithCurrentItem="True" ItemsSource="{Binding Path=MyData}" AutoGenerateColumns="False" IsReadOnly="True" GridLinesVisibility="None" SelectionUnit="Cell">
<DataGrid.Columns>
<DataGridTextColumn Header="a" Width="130" Binding="{Binding Path=A}"/>
<DataGridTextColumn Header="b" Width="100" Binding="{Binding Path=B}"/>
<DataGridTextColumn Header="c" Width="100" Binding="{Binding Path=C}"/>
</DataGrid.Columns>
<DataGrid.InputBindings>
<MouseBinding Gesture="LeftClick" Command="{Binding DataGridLeftClick}" CommandParameter="{Binding ElementName=MyDataGrid, Path=SelectedCells}" />
</DataGrid.InputBindings>

在我的 ViewModel 我有
   DataGridLeftClick = new RelayCommand(LeftClick);
...

public ICommand DataGridLeftClick { get; private set; }

public void LeftClick(object obj)
{
log.Info(obj);
}

该命令有效,但有两件事 obj 的值始终为空。如果我删除网格的 SelectionUnit(所以我假设它默认为 FullRow),那么我会得到完整行单元格的数据。如何获取单击的单个单元格的单元格行、索引和值?

谢谢,
缺口

最佳答案

您是否考虑过 DataGridView.CurrentCell 属性并绑定(bind)到 VM {Binding CurrentCellVMProperty, Mode=OneWayToSource}。

另请参阅此答案:How to Bind CurrentCell in WPF datagrid using MVVM pattern

关于c# - 使用 MVVM 单击 DataGrid 单个单元格行和列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31414722/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com