예제 #1
0
        public RoleScreenViewModel()
        {
            Editor = new EditorViewModel <RoleVM>(controller.Roles.Select(r => CreateVM(r)),
                                                  "Выберите роль:",
                                                  () =>
            {
                var ent = controller.CreateRole();
                return(CreateVM(ent));
            });
            Buttons = new AddButtonsViewModel <RoleVM>(OnAddAbilities, "+ возможности", OnAddUsers, "+ пользователи");
            Editor.PropertyChanged      += Editor_PropertyChanged;
            controller.UserRolesChanged += (s, e1) =>
            {
                SetupAbilityUsers();
            };
            controller.UserAbilitiesChanged += (s, e1) =>
            {
                SetupAbilityUsers();
            };
            controller.RoleAbilitiesChanged += (s, e1) =>
            {
                SetupRoleAbilities();
                SetupAbilityUsers();
            };
            controller.DeprecatedChanged += (s, e1) =>
            {
                if (e1.entity == CurrentEntity.role)
                {
                    CurrentEntity.OnDeprecatedChangedByCode();
                }
            };
            PropertyChanged += (s, e) =>
            {
                if (e.PropertyName == "Mode")
                {
                    SetupAbilityUsers();
                }
            };

            AfterConstructed();
        }