如何根据模型类

时间:2017-12-20 15:18:07

标签: c# wpf reflection

我正在编写一个包含一些用户权限管理的桌面应用程序,因此我正在构建一个段来管理所有用户权限。

在我开始将所有不同类型的权限硬编码到用户界面之前,我想知道是否可以让WPF为我动态执行此操作。

更具体地说,我有一个模型,其中包含用户和他的权限(每个用户都有一个角色),如下所示:

public class Role
{
    public enum Permission
    {
        None,
        Read,
        Write
    };

    public int id;
    public string name;
    public bool isAdmin;
    public Permission Usermanagement;
    public Permission Appointments;
    public Permission Events;

并且对于此类中的每个Permission,我希望WPF创建一个带有名称的模板和一个用于选择权限类型的comboBox。 我的第一个猜测是使用带有模板的ListView / ListBox(该部分不是问题)。

我的问题是如何获取权限列表作为我的模板的源列表,然后如何将真实对象绑定到它,以便更新正确的权限。

这是一个关于可能性的问题,我可以硬编码我的权限并逐个绑定它们。

1 个答案:

答案 0 :(得分:1)

您可以使用这样的名称/权限对集合:

import

并像这样绑定ItemsControl:

public class NamedPermission
{
    public string Name { get; set; }
    public Permission Permission { get; set; }
}

public class Role
{
    ...

    public List<NamedPermission> Permissions { get; } = new List<NamedPermission>
    {
        new NamedPermission { Name = "Usermanagement" },
        new NamedPermission { Name = "Appointments" },
        new NamedPermission { Name = "Events" }
    };
}