public override void AwakeFromNib()
        {
            base.AwakeFromNib();
            UserDto = UserDtoOriginal.DeepCopy();
            Groups  = new List <GroupDto> (GroupsOriginal);

            TxtUsername.StringValue    = UserDto.Name == null ? string.Empty : UserDto.Name.Length > 10 ? UserDto.Name.Substring(0, 10) + "..." : UserDto.Name;
            TxtFirstName.StringValue   = UserDto.PersonDetails.FirstName == null ? string.Empty : UserDto.PersonDetails.FirstName;
            TxtLastName.StringValue    = UserDto.PersonDetails.LastName == null ? string.Empty : UserDto.PersonDetails.LastName;
            TxtEmail.StringValue       = UserDto.PersonDetails.EmailAddress == null ? string.Empty : UserDto.PersonDetails.EmailAddress;
            TxtDescription.StringValue = UserDto.PersonDetails.Description == null ? string.Empty : UserDto.PersonDetails.Description;
            chkActive.StringValue      = UserDto.Disabled ? "0" : "1";
            ChActAsUser.StringValue    = UserDto.ActAsUsers ? "1" : "0";
            ChIdpAdmin.StringValue     = UserDto.IsIdpAdmin ? "1" : "0";
            var roleTag = UserDto.Role == UserRole.Administrator ? 1 : UserDto.Role == UserRole.RegularUser ? 2 : 3;

            RdoRoleGroup.SelectCellWithTag((nint)roleTag);

            foreach (NSTableColumn column in MemberTableView.TableColumns())
            {
                MemberTableView.RemoveColumn(column);
            }
            MemberTableView.Delegate = new TableDelegate();
            var listView = new GroupsDataSource {
                Entries = Groups
            };
            var columnNames = new List <ColumnOptions> {
                new ColumnOptions {
                    Id = "Name", DisplayName = "Group Name", DisplayOrder = 1, Width = 200
                }
            };
            var columns = ListViewHelper.ToNSTableColumns(columnNames);

            foreach (var column in columns)
            {
                MemberTableView.AddColumn(column);
            }
            MemberTableView.DataSource = listView;
            MemberTableView.ReloadData();
            BtnApply.Hidden    = !IsSystemDomain;
            LoginAsUser.Hidden = !IsSystemDomain;

            //Events
            this.BtnApply.Activated       += OnClickSaveButton;
            this.BtnAddGroup.Activated    += OnClickAddGroupButton;
            this.BtnRemoveGroup.Activated += OnClickRemoveGroupButton;
            this.LoginAsUser.Activated    += OnLoginUserClicked;
        }