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(); }