下面是我的视图模型背后的代码:
private DataRow selectedErrorRow;
public DataRow SelectedErrorRow
{
get { return selectedErrorRow; }
set { selectedErrorRow = value; base.RaisePropertyChanged("SelectedErrorRow"); }
}我认为:
<DataGrid SelectedItem="{Binding SelectedErrorRow,Mode=TwoWay}"装订有点效果..。当绘制数据集时,它“获取”该值,但当选择/突出显示新值时,它从不设置该值.有什么想法吗?
注意:数据集的项源是DataTable.
编辑:数据集在PopUp中,当绘制数据集时,它将得到绑定值(null)。但是,一旦我选择/突出显示一个行,它就不会‘设置’任何东西。但是,当它重新绘制时,它将“设置”绑定值null (弹出窗口是打开的,我选择了一行,关闭它,然后重新打开它)。问题是,它从不将值设置为null以外的任何值,并且只在绘制的时间内设置值。
发布于 2012-01-18 13:15:37
我需要改变我所绑定的东西。它需要绑定到DataRowView而不是DataRow。
发布于 2013-10-10 13:10:30
我以前有过这个问题,我自己解决了。
不直观地知道问题是什么,因为在调试中看不到真正的价值,但是当数据绑定到数据集上的DataTable时,首先您认为它有一个DataTable类型作为源,对吗?如果你这么想的话你就错了。
实际上,数据集或绑定(我仍然不知道它发生在哪里,因为我只在我的一侧看到了DataTable )对DataTable对象进行了强制转换/转换,比如DataTable.AsDataView(),将其本身转换为DataView,因此所选的项对我来说是有意义的DataRowView。
我知道这是个老生常谈的问题,但这可能会让那些来到这里的人明白,并把值作为数据源,特别是转换器。
发布于 2012-08-21 20:17:21
试试这个:
DataGrid SelectedItem="{Binding Path=SelectedErrorRow,Mode=TwoWay}这应该能解决你的问题。
https://stackoverflow.com/questions/8896569
复制相似问题