【发布时间】:2013-12-03 12:17:51
【问题描述】:
我正在学习 WPF MVVM 模式。我被困在datagrid 的Binding CurrentCell 中。基本上我需要当前单元格的行索引和列索引。
<DataGrid AutoGenerateColumns="True"
SelectionUnit="Cell"
CanUserDeleteRows="True"
ItemsSource="{Binding Results}"
CurrentCell="{Binding CellInfo}"
Height="282"
HorizontalAlignment="Left"
Margin="12,88,0,0"
Name="dataGrid1"
VerticalAlignment="Top"
Width="558"
SelectionMode="Single">
这是我的视图模型
private User procedureName = new User();
public DataGridCell CellInfo
{
get { return procedureName.CellInfo; }
//set
//{
// procedureName.CellInfo = value;
// OnPropertyChanged("CellInfo");
//}
}
这是我的模型
private DataGridCell cellInfo;
public DataGridCell CellInfo
{
get { return cellInfo; }
//set
//{
// cellInfo = value;
// OnPropertyChanged("CellInfo");
//}
}
在我的 ViewModel 中,CellInfo 始终是 null。我无法从datagrid 中的currentcell 获取值。请告诉我在 ViewModel 中获取CurrentCell 的方法。
if (CellInfo != null)
{
MessageBox.Show("Value is" + CellInfo.Column.DisplayIndex.ToString());
}
【问题讨论】:
-
CurrentCell="{Binding CellInfo}" - 尝试将这个东西设置为两种绑定模式。
-
为什么你需要单元格信息,你不能绑定到数据网格的选定项并从那里提取你需要的属性吗?此外,从您的视图模型中调用消息框会产生问题。那只是为了测试?
-
谢谢。我尝试使用 SelectedItem。在我的视图模型中甚至 selecteditem 都是空的。是的消息框仅用于测试。
-
@devhedgehog 我也尝试了两种模式。但我没有在我的视图模型中得到 CurrentCell。