我有2张桌子。在DevExpress XAF中开发的表A(主)和表B(子)。 如果表B中的记录满足此要求,我需要更新表A(字段结束)中的单个属性:
因此,在表A中,字段End是bool属性。
这是我到目前为止所写的内容,但没有运气......
在表B代码页中:
private bool _end;
public bool End
{
get
{
return _end;
}
set
{
bool result;
TableB.Status c = new TableB.Status();
if (c == TableB.Status.Ended)
{
result = true;
}
else
{
result = false;
}
SetPropertyValue<bool>("StatusField", ref _end, result);
}
}
我运行我的项目,将表B中的字段更改为“已结束”,保存记录但表A中字段End没有更改。
任何想法?
由于
答案 0 :(得分:0)
您的代码有点令人困惑,因为您说主表“A”(在XAF术语中将是业务对象或BO)具有名为“End”的属性,但您发布的代码似乎定义了你说的那个属性是给孩子“B”。
假设您打算说代码是针对BO“A”,那么这就是从错误的一端接近问题 - 发布的代码只会在A.End被赋值时产生效果,但是您想要设置B.Status设置为“Ended”时的值,因此您需要将一些代码写入B的“Ended”属性。
你也没有说明哪个字段与两个BO有关,所以我将假设这个例子中孩子B有一个名为“Master”的属性,类型为A.我还假设“状态”枚举在B中定义。
在这种情况下,你需要这样的东西,在B代码中:
private Status _status;
public Status StatusField {
get { return _status; }
set {
if (value == Status.Ended && Master != null) {
Master.End = true;
}
SetPropertyValue("StatusField", ref _status, value);
}
}