我是MVVM的新手,我决定继续前行,并在即将到来的项目中开始采用它。在MVVM中切换视图模式和编辑模式?
我已经阅读了这个相关的问题和答案,但我不知道这将如何与MVVM实现。
我希望我项目中的所有视图都有2种模式,编辑模式和视图模式。
我不希望用户在默认情况下查看所有字段的文本框,我宁愿让他们看到TextBlocks(或将所有TextBoxe
s'设为IsReadOnly
属性为true(通过样式等,你告诉我..)
当用户打开实体时,通常应该是TextBlocks,Labels(或只读文本框)等,如果他点击“编辑”(如果他有权限),它应该进入编辑模式,所有该字段的标签应该被反转,以文本框(RichTextBoxes等,组合框或其他任何可编辑的字段不只是标签)。
我敢肯定,我没有这个问题的唯一一个,我想听听从专家什么是切换b的最有效的方法在纯MVVM中使用这些模式,以及为它声明两个单独的视图是否很常见。
请参阅一篇很好的文章,解释如何做到这一点(也许它是由Visual State?IDK完成的)。
UPDATE
我想知道什么,而不是怎么样,我的问题是关于模式,是应该从我查看模式在任的V或虚拟机分开编辑模式 ? 所以请在回答中强调这些细节。
在此先感谢。
那么其他领域呢?我说我想要一些字段反转为DropDown,一些是滑块,一些是日期选择器,而在视图模式下,它们都是简单的TextBlocks /标签?这对我来说非常重要。 – Shimmy 2011-02-07 00:09:25
@Shimmy - 对不起,我错过了那一点(不知道为什么)。您可以对ComboBoxes执行相同的操作,但它可能是您需要绑定到的`IsEnabled`属性。 – ChrisF 2011-02-07 00:11:17
所以你基本上说我应该为编辑/视图模式制定一个共同的视图,让所有控件声明一个靠近另一个设置IsReadOnly或Visibility控件到VM上的IsViewMode(使用BooleanToVisibility转换器控件隐藏),是那对吗? **我已经添加了一些内容到我的问题。** – Shimmy 2011-02-07 00:50:03