Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# DevExpress XAF-在ViewController中执行代码之前,测试对象是否已注册_C#_Visual Studio 2015_Devexpress_Xaf - Fatal编程技术网

C# DevExpress XAF-在ViewController中执行代码之前,测试对象是否已注册

C# DevExpress XAF-在ViewController中执行代码之前,测试对象是否已注册,c#,visual-studio-2015,devexpress,xaf,C#,Visual Studio 2015,Devexpress,Xaf,我正在使用DevExpress XAF进行开发,我的问题有点棘手,简而言之,当我保存我的类时,我根据提供的数据在其他类中进行更改,我通过一个控制器实现了这一点,该控制器在我关闭详细视图时执行代码,问题是有一个场景不满足我的需要,如下所示: 当我打开一个已经存在的细节视图并修改一些数据时,当我关闭窗口时,程序会显示一个确认窗口(“你想注册吗?”),当我单击“否”时,通常我的视图控制器不会做任何事,因为我拒绝更改我的类数据 最后是我的问题:在继续更改并执行代码之前,如何在我的视图控制器中测试对象是否

我正在使用DevExpress XAF进行开发,我的问题有点棘手,简而言之,当我保存我的类时,我根据提供的数据在其他类中进行更改,我通过一个控制器实现了这一点,该控制器在我关闭详细视图时执行代码,问题是有一个场景不满足我的需要,如下所示:

当我打开一个已经存在的细节视图并修改一些数据时,当我关闭窗口时,程序会显示一个确认窗口(“你想注册吗?”),当我单击“否”时,通常我的视图控制器不会做任何事,因为我拒绝更改我的类数据

最后是我的问题:在继续更改并执行代码之前,如何在我的视图控制器中测试对象是否已注册?

当您说注册时,我想您的意思是保存

您可以使用
ObjectSpace.GetObjectsToSave()
方法获取对象列表,调用
ObjectSpace.CommitChanges()
时将保存这些对象。然后您可以确定View.CurrentObject是否在此列表中

或者,您可以使用
ObjectSpace\u ObjectChanged
事件

public class MyViewController : ObjectViewController<DetailView, Contact> {
    protected override void OnActivated() {
        base.OnActivated();
        ObjectSpace.ObjectChanged += ObjectSpace_ObjectChanged;
    }

    void ObjectSpace_ObjectChanged(object sender, ObjectChangedEventArgs e) {
        if (e.Object == View.CurrentObject) {
            // execute your business logic
        }
    }

    protected override void OnDeactivated() {
        base.OnDeactivated();
        ObjectSpace.ObjectChanged -= ObjectSpace_ObjectChanged;
    }
}
公共类MyViewController:ObjectViewController{
已激活的受保护覆盖无效(){
base.OnActivated();
ObjectSpace.ObjectChanged+=ObjectSpace\u ObjectChanged;
}
void ObjectSpace\u ObjectChanged(对象发送方,objectchangedventargs e){
if(e.Object==View.CurrentObject){
//执行您的业务逻辑
}
}
受保护的覆盖已激活(){
base.com()激活;
ObjectSpace.ObjectChanged-=ObjectSpace\u ObjectChanged;
}
}
有关类似请求的支持中心讨论,请参阅。

当您说注册时,我想您的意思是保存

您可以使用
ObjectSpace.GetObjectsToSave()
方法获取对象列表,调用
ObjectSpace.CommitChanges()
时将保存这些对象。然后您可以确定View.CurrentObject是否在此列表中

或者,您可以使用
ObjectSpace\u ObjectChanged
事件

public class MyViewController : ObjectViewController<DetailView, Contact> {
    protected override void OnActivated() {
        base.OnActivated();
        ObjectSpace.ObjectChanged += ObjectSpace_ObjectChanged;
    }

    void ObjectSpace_ObjectChanged(object sender, ObjectChangedEventArgs e) {
        if (e.Object == View.CurrentObject) {
            // execute your business logic
        }
    }

    protected override void OnDeactivated() {
        base.OnDeactivated();
        ObjectSpace.ObjectChanged -= ObjectSpace_ObjectChanged;
    }
}
公共类MyViewController:ObjectViewController{
已激活的受保护覆盖无效(){
base.OnActivated();
ObjectSpace.ObjectChanged+=ObjectSpace\u ObjectChanged;
}
void ObjectSpace\u ObjectChanged(对象发送方,objectchangedventargs e){
if(e.Object==View.CurrentObject){
//执行您的业务逻辑
}
}
受保护的覆盖已激活(){
base.com()激活;
ObjectSpace.ObjectChanged-=ObjectSpace\u ObjectChanged;
}
}
有关类似请求的支持中心讨论,请参阅