是否有一些有效的方法可以根据用户设置/权限隐藏WinForm / WPF桌面程序的某些部分?
我正在开展一个包含数百个表格/对话框的大型会计项目。
该程序将启动一个主窗口,显示1到4个分区。用户选择其中的每一个,然后它将启动一个窗口,其中包含侧边栏上带有一堆按钮的侧边栏(类似于Microsoft Outlook)。现在,当用户点击每个按钮时,它将打开该程序的该部分,用户将使用该部分。根据用户权限/设置,有时需要隐藏其中一些按钮。例如,假设我有4个主要部门A,B,C和D.当您启动A时,您将获得包含A1,A2,...,A100的侧边栏。用户可能会选择只看到A1& A50!
我们最初的方法是使用WinForms,因为团队非常熟悉它。我怀疑,为此,我们必须构建某种模型,其中包含有关用户首选项的信息,并且很多地编写代码行btnA1.Visible = false;
。
我还不确定,但我认为使用PRISM我需要将每个按钮或其对话框作为模块并在我决定用户需要哪些按钮后加载它们。
这似乎是一个很好的方法,但考虑到这个项目非常紧急的事实,我们不需要为不同的用户加载不同的模块(我们只需要加载它们 - 理想情况下按需 - 和有时隐藏一些),我有一些顾虑:
另外,我正在观看来自Channel9的Prism & Silverlight Series和PRISM5 for WPF。
答案 0 :(得分:2)
一个窗口,其中包含侧栏和侧栏上的一组按钮(类似于Microsoft Outlook)。现在,当用户点击每个按钮时,它将打开该程序的该部分,用户将使用该部分。
听起来像是TabControl。你不应该试图重新发明轮子,因为它已经被发明了。
该示例与您的要求之间的唯一区别在于,不是硬编码您将要绑定到ViewModel集合的标签,例如this,然后让每个{{1}实例根据用户权限/用户选择,切换它自己的TabViewModel
属性。
这很简单。无需复杂的MVVM框架。不需要愚蠢过时无用的winforms东西。