C#WPF数据网格验证规则-传递参数

C#WPF数据网格验证规则-传递参数,c#,wpf,validation,C#,Wpf,Validation,我有一个点类,如下所示: 公共类点 { 公共保险箱盖; 公共双lX_坐标; 公共点() { ID=0; X_坐标=0; } 公共uint ID { 得到 {返回盖;} 设置 { lID=值; } } 公共双X_坐标 { 得到 {返回lX_坐标;} 设置 { lX_坐标=值; } } } 点类构成属于类几何体的可观测集合点列表的成员,如下所示: 公共类几何 { 公共可观测收集点列表; 公共双边界; 公共几何() { lPointList=新的ObservableCollection(); } 公

我有一个
类,如下所示:

公共类点
{
公共保险箱盖;
公共双lX_坐标;
公共点()
{
ID=0;
X_坐标=0;
}
公共uint ID
{
得到
{返回盖;}
设置
{
lID=值;
}
}
公共双X_坐标
{
得到
{返回lX_坐标;}
设置
{
lX_坐标=值;
}
}
}
点类构成属于类
几何体
可观测集合
点列表
的成员,如下所示:

公共类几何
{
公共可观测收集点列表;
公共双边界;
公共几何()
{
lPointList=新的ObservableCollection();
}
公共可观察收集点列表
{
得到
{返回lPointList;}
设置
{lPointList=value;}
}
公共双左边界
{
得到
{返回lLeftBoundary;}
设置
{lLeftBoundary=value;}
}
}
然后我将
点列表的内容绑定到
数据网格
。有一个验证规则,它根据
LeftBoundary
检查点
X_坐标
,该点作为依赖项对象通过
ValidationWrapper
类传递给验证规则

以下是XAML代码:


以下是
ValidationWrapper
类:

公共类ValidationGeometryPointX:ValidationRule
{
公共验证Geometrypointx()
{
}
公共覆盖验证结果验证(对象值,CultureInfo CultureInfo)
{
两点坐标=0;
尝试
{
如果(((字符串)值).Length>0)
PointCoordinate=Double.Parse((字符串)值);
}
抓住
{
返回新的ValidationResult(false,“非法字符”);
}
if(点坐标
显示数据网格的窗口的代码如下所示:

公共部分类GeometryWin:窗口
{
公共GeometryWin(几何Geometry1)
{
初始化组件();
base.DataContext=lGeometry;
DatgrGeometry.ItemsSource=lGeometry.PointList;
}
}
上述验证已成功实现

我现在正在努力做的是将
Point.ID
参数传递给
ValidationWrapper
类,以便根据ID为
X_坐标添加另一个验证条件。如有任何帮助,将不胜感激


为了简洁起见,代码的某些部分被省略了。

解决方案似乎是执行行验证,并将整个项传递给验证规则类。这里有一篇有趣的文章