2009-10-18 39 views
1

我有,我想,当一条记录被插入到我的数据库更新UI的进度条。之前我做过这个,当时我只有一个UI层和一个Business层没有问题。但我现在打破我的代码放到一个UI层,业务层和数据层,我想不出如何正确地从我的业务层叫我OnPropertyChangedEvent在我的数据层,并让我的UI更新。我刚开始熟悉代表,所以任何建议都会有所帮助。C#OnPropertyChangedEvents实现和代表提问

谢谢!

+0

我们有相同的名字!大声笑 – 2009-10-18 18:50:21

回答

1

Typicaly你不想要的数据层有业务层的任何知识,即你要依赖流淌下来(使用抽象)的用户界面 - > BLL - > DAL。如果您想在插入一条记录从数据层得到通知,你可以公开事件,如OnBeforeInsert,OnAfterInsert,OnBeforeUpdate,OnAfterUpdate等在数据层,业务层订阅。在数据库操作之前和之后调用事件,您可以创建一个自定义的EventArgs类,其中包含需要获取的任何数据,然后可以在调用事件时实例化并传递。 UI/BLL可以用它来显示进度或做任何它认为合适的事情。

+0

哦,我什至不知道这些事件存在。你如何暴露这些? – Nathan 2009-10-18 19:30:56

+0

我相信,如果您使用的是LINQ2SQL或Entity Framework,那么这些事件将为您提供开箱即用的功能。如果您正在编写自己的数据访问层,那么您需要自己编写这些事件。在这两种情况下,客户端(在这种情况下,业务逻辑)然后订阅这些事件,使其被通知当插入/更新等情况发生时,业务层可以再去做想要在事件处理程序的任何处理。此外,您还可以为业务层类编写事件,从而可以将事件“泡泡”到UI层。 – 2009-10-18 21:22:49