首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

小问MVC模式解决思路

2012-03-18 
小问MVC模式如果V层数据改变了,通过C层来修改M层的数据,然后由M层的数据改变通知对应的所有V层重绘。小弟有

小问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

热点排行