or
var pane = new RadPane();var paneGroup = new RadPaneGroup();paneGroup.Items.Add(pane);var splitContainer = new RadSplitContainer();splitContainer.Items.Add(paneGroup);this.dockingControl.Items.Add(splitContainer);pane.MakeFloatingDockable();Public Class NovoBookMarkRangeStart Inherits FieldRangeStartBase Private m_Name As String Private m_TypeCase As Integer Private m_BookFormat As String <XamlSerializable()> _ Public Property BookFormat As String Get Return m_BookFormat End Get Set(value As String) m_BookFormat = value End Set End Property <XamlSerializable()> _ Public Property Name() As String Get Return m_Name End Get Set(value As String) m_Name = value End Set End Property <XamlSerializable()> _ Public Property TypeCase() As Integer Get Return m_TypeCase End Get Set(value As Integer) m_TypeCase = value End Set End Property Public Sub New() End Sub Public Sub New(name As String, TypeCase As Integer, Bookformat As String) Me.TypeCase = TypeCase Me.Name = name Me.BookFormat = Bookformat End SubPrivate Sub Wpf_NewBookMark(ID As Integer, TypeCase As Integer, BookFormat As String) Handles Wpf.NewBookMark Dim StartRange As New NovoBookMarkRangeStart(ID.ToString, TypeCase, BookFormat) Dim EndRange As New NovoBookMarkRangeEnd() 'Caret Position Dim S As New DocumentPosition(Me.editor.Document.CaretPosition) Dim E As New DocumentPosition(Me.editor.Document) EndRange.PairWithStart(StartRange) 'Custom Span Dim BookMarkSpan As New Span("{" & Id.ToString() & "}") S.AnchorToCurrentBoxIndex() editor.InsertInline(StartRange) editor.InsertInline(BookMarkSpan) editor.InsertInline(EndRange) S.RestorePositionFromBoxIndex() editor.UpdateEditorLayout() End Subusing System;using System.Linq;using System.ComponentModel;using System.ComponentModel.DataAnnotations;namespace VisorDataModel{ [MetadataTypeAttribute(typeof(ValidUser.ValidUserMetadata))] public partial class ValidUser : IEditableObject { internal sealed class ValidUserMetadata { public ValidUserMetadata() { } [Required(ErrorMessage = "User ID is required")] public int UserID { get; set; } [Required(ErrorMessage = "User Name is required.")] [StringLength(6,ErrorMessage="User name must be at least 6 characters")] public string UserName { get; set; } [Required(ErrorMessage = "Password is required.")] [StringLength(6, ErrorMessage = "Password must be at least 6 characters")] public string UserPassword { get; set; } [Required(ErrorMessage = "User Class is required.")] public int UserClass { get; set; } } }}using System;using System.Collections.Generic;using System.Linq;namespace VisorDataModel{ public interface IValidUsersModel { IEnumerable<ValidUser> LoadValidUsers(); IEnumerable<UserClass> LoadUserClasses(); ValidUser NewValidUser(); void AddValidUser(ValidUser validUser); void DeleteValidUser(ValidUser validUser); void SaveChanges(); }}using System;using System.Collections.Generic;using System.Linq;namespace VisorDataModel{ /// <summary> /// Represents a source of ValidUsers /// </summary> public class ValidUsersModel : IValidUsersModel { private EntitiesModel dbContext = new EntitiesModel(); public IEnumerable<ValidUser> LoadValidUsers() { return dbContext.ValidUsers.ToList(); } public IEnumerable<UserClass> LoadUserClasses() { return dbContext.UserClasses.ToList(); } public ValidUser NewValidUser() { ValidUser newValidUser = new ValidUser { UserName = "New User", UserPassword = "New Password", UserClass = 0 }; int newUserId = 0; try { newUserId = (from vu in dbContext.ValidUsers select (vu.UserID)).Max() +1; } catch { newUserId = 0; } newValidUser.UserID = newUserId; return newValidUser; } public void AddValidUser(ValidUser validUser) { dbContext.Add(validUser); dbContext.SaveChanges(); } public void DeleteValidUser(ValidUser validUser) { dbContext.Delete(validUser); dbContext.SaveChanges(); } public void SaveChanges() { dbContext.SaveChanges(); } }}using System;using System.Linq;using System.Collections.ObjectModel;using System.ComponentModel;namespace VisorDataModel{ public class ValidUsersViewModel : INotifyPropertyChanged { private readonly IValidUsersModel dataModel; private ValidUser _selectedValidUser; private DelegateCommand _addValidUserCommand; private DelegateCommand _deleteValidUserCommand; private DelegateCommand _saveChangesCommand; private ObservableCollection<ValidUser> _validUsers; private ObservableCollection<UserClass> _userClasses; public event PropertyChangedEventHandler PropertyChanged; private ObservableCollection<ValidUser> _originalValidUsers; #region initialisation public ValidUsersViewModel() { this.dataModel = new ValidUsersModel(); } #endregion public ObservableCollection<ValidUser> ValidUsers { get { if (this._validUsers == null) { this._validUsers = new ObservableCollection<ValidUser>(); if (this._originalValidUsers == null) { this._originalValidUsers = this._validUsers; } LoadValidUsers(); } return this._validUsers; } } public ObservableCollection<UserClass> UserClasses { get { if (this._userClasses == null) { this._userClasses = new ObservableCollection<UserClass>(); LoadUserClasses(); } return this._userClasses; } } #region SelectValidUser property public ValidUser SelectedValidUser { get { return _selectedValidUser; } set { if (this._selectedValidUser == value) return; this._selectedValidUser = value; this.OnPropertyChanged("SelectedValidUser"); } } #endregion public DelegateCommand AddValidUserCommand { get { if (this._addValidUserCommand == null) this._addValidUserCommand = new DelegateCommand(this.OnAddCommandExecute); return _addValidUserCommand; } } public DelegateCommand DeleteValidUserCommand { get { if (this._deleteValidUserCommand == null) this._deleteValidUserCommand = new DelegateCommand(this.OnDeleteCommandExecute); return _deleteValidUserCommand; } } public DelegateCommand SaveChangesCommand { get { if (this._saveChangesCommand == null) this._saveChangesCommand = new DelegateCommand(this.OnSaveCommandExecute); return _saveChangesCommand; } } private void LoadValidUsers() { this._validUsers.Clear(); foreach (var item in this.dataModel.LoadValidUsers()) { this._validUsers.Add(item); } } private void LoadUserClasses() { this._userClasses.Clear(); foreach (var item in this.dataModel.LoadUserClasses()) { this._userClasses.Add(item); } } private void OnAddCommandExecute(object parameter) { ValidUser newValidUser = this.dataModel.NewValidUser(); this.ValidUsers.Add(newValidUser); this.SelectedValidUser = newValidUser; this.dataModel.AddValidUser(newValidUser); } private void OnDeleteCommandExecute(object parameter) { if (this.SelectedValidUser != null) { this.dataModel.DeleteValidUser(this.SelectedValidUser); this.ValidUsers.Remove(this.SelectedValidUser); } } private void OnSaveCommandExecute(object parameter) { this.dataModel.SaveChanges(); } protected virtual void OnPropertyChanged(string info) { if (this.PropertyChanged != null) this.PropertyChanged(this, new PropertyChangedEventArgs(info)); } }}