读书人

小问MVC模式解决思路

发布时间: 2012-03-18 13:55:39 作者: rapoo

小问MVC模式
如果V层数据改变了,通过C层来修改M层的数据,然后由M层的数据改变通知对应的所有V层重绘。
小弟有个疑问,当重绘时V层改变,岂不是有通知C层工作。这样不是死循环下去啦?

[解决办法]
没弄过,不懂。帮你顶
[解决办法]
要区分重绘和人为的修改
m改变后c重绘所有画面,重绘并不会引起m的改变,所以不会引起再次重绘,没有死循环
如果有死循环,那是设计出问题了
[解决办法]
V层只负责显示,不负责修改,其实你修改数据是提交给C,然后反馈给M,最后由M来更新V这才是对的。
即使你显示上可以有一个即输即见,但也应该像输入法一样,有个提交的动作。
[解决办法]
汗颜...
[解决办法]

就像2楼说的要区分重绘和人为的修改

你可以定义一个全局变量.
然后供给C层去控制.
当V层重绘时触发C层的一个事件是么?
定义一个BOOL变量.
在事件中先判断这个BOOL变量

C# code
bool canRefush=true; //全局变量,控制事件触发public void xxx_refush(...){ canRefush=false; if(!canRefush) {  ...M层操作...  V层重绘(); //V层重绘,再次调用该事件.但是canRefush为false; 事件被取消.  canRefush=true; }}
[解决办法]
精华贴,先留个名
[解决办法]
要区分重绘和人为的修改 !!!Up

读书人网 >C#

热点推荐