private void brAddRow_Click(object sender, System.EventArgs e) { Cells.CheckBox l_CheckBox = new Cells.CheckBox(false); l_CheckBox.VisualModel = m_VisualPropertiesCheckBox; Cells.Link l_Link = new Cells.Link("http://www.codeproject.com"); l_Link.VisualModel = m_VisualPropertiesLink; l_Link.Click += new SourceGrid2.PositionEventHandler(CellLink_Click); grid1.Rows.Insert(grid1.RowsCount, new Cells.RowHeader(), new Cells.Cell(grid1.RowsCount, m_CellEditor_Id, m_VisualProperties), new Cells.Cell(m_CellEditor_Name.DefaultValue, m_CellEditor_Name, m_VisualProperties), new Cells.Cell(m_CellEditor_Address.DefaultValue, m_CellEditor_Address, m_VisualProperties), new Cells.Cell(m_CellEditor_City.DefaultValue, m_CellEditor_City, m_VisualProperties), new Cells.Cell(m_CellEditor_BirthDay.DefaultValue, m_CellEditor_BirthDay, m_VisualProperties), new Cells.Cell(m_CellEditor_Country.DefaultValue, m_CellEditor_Country, m_VisualProperties), new Cells.Cell(m_CellEditor_Price.DefaultValue, m_CellEditor_Price, m_VisualPropertiesPrice), l_CheckBox, l_Link); grid1.Rows[grid1.RowsCount - 1].Focus(); }
Item this[int i] { get { return(items[i]); } set { // set the first cell to the glass icon this[i + 1, 0] = new Link(null); SourceGrid2.VisualModels.Common vm = new SourceGrid2.VisualModels.Common(); vm.Image = glassImg; vm.ImageAlignment = SourceLibrary.Drawing.ContentAlignment.MiddleCenter; this[i + 1, 0].VisualModel = vm; this[i + 1, 0].Behaviors.Add(new BehaviorEdit()); this[i + 1, 0].Tag = items[i]; // assign the item to the Tag field. // set the second cell to the delete icon this[i + 1, 1] = new Link(null); vm = new SourceGrid2.VisualModels.Common(); vm.Image = deleteImg; vm.ImageAlignment = SourceLibrary.Drawing.ContentAlignment.MiddleCenter; this[i + 1, 1].VisualModel = vm; this[i + 1, 1].Behaviors.Add(new BehaviorDelete()); this[i + 1, 1].Tag = i; // assign the index to the Tag field. // set the third cell to the par icon vm = new SourceGrid2.VisualModels.Common(); vm.ImageAlignment = SourceLibrary.Drawing.ContentAlignment.MiddleCenter; if (value is FunctionItem && ((FunctionItem)value).p.Count > 0) { this[i + 1, 2] = new Link(null); vm.Image = parImg; this[i + 1, 2].Behaviors.Add(new BehaviorPar()); ParForm f = new ParForm(MainModel); f.Reset((FunctionItem)value); this[i + 1, 2].Tag = f; } else { this[i + 1, 2] = new SourceGrid2.Cells.Real.Cell(); vm.Image = parDisabledImg; } this[i + 1, 2].VisualModel = vm; // set the fourth cell to the updown icon if (i < items.Count) { this[i + 1, 3] = new Link(null); vm = new SourceGrid2.VisualModels.Common(); vm.Image = upDownImg; vm.ImageAlignment = SourceLibrary.Drawing.ContentAlignment.MiddleCenter; this[i + 1, 3].Behaviors.Add(new BehaviorDown()); this[i + 1, 3].VisualModel = vm; } else { this[i + 1, 3] = new Cell(); } this[i + 1, 4] = new SourceGrid2.Cells.Real.CheckBox(true); // add a checkbox this[i + 1, 5] = new Cell(value.Name); // add the item name this[i + 1, 5].Behaviors.Add(new BehaviorName()); // add doubleclick functionality this[i + 1, 6] = new Cell(value.TypeName()); // add the item's typename // Set ItemsModel if (items[i] != value) { items[i] = value; } itemsOld[i] = value; } }
private void frmSampleGrid1_Load(object sender, System.EventArgs e) { string[] l_CountryList = new string[] { "Italy", "France", "Spain", "UK", "Argentina", "Mexico", "Switzerland", "Brazil", "Germany", "Portugal", "Sweden", "Austria" }; grid1.RowsCount = 1; grid1.ColumnsCount = 10; grid1.FixedRows = 1; grid1.FixedColumns = 1; grid1.Selection.SelectionMode = SourceGrid2.GridSelectionMode.Row; grid1.AutoStretchColumnsToFitWidth = true; grid1.Columns[0].AutoSizeMode = SourceGrid2.AutoSizeMode.None; grid1.Columns[0].Width = 30; #region Create Header Row and Editor Cells.Header l_00Header = new Cells.Header(); grid1[0, 0] = l_00Header; m_CellEditor_Id = SourceGrid2.Utility.CreateDataModel(typeof(int)); m_CellEditor_Id.EditableMode = SourceGrid2.EditableMode.Focus | SourceGrid2.EditableMode.AnyKey | SourceGrid2.EditableMode.SingleClick; grid1[0, 1] = new Cells.ColumnHeader("ID (int)"); m_CellEditor_Name = SourceGrid2.Utility.CreateDataModel(typeof(string)); m_CellEditor_Name.EditableMode = SourceGrid2.EditableMode.Focus | SourceGrid2.EditableMode.AnyKey | SourceGrid2.EditableMode.SingleClick; grid1[0, 2] = new Cells.ColumnHeader("NAME (string)"); m_CellEditor_Address = SourceGrid2.Utility.CreateDataModel(typeof(string)); m_CellEditor_Address.EditableMode = SourceGrid2.EditableMode.Focus | SourceGrid2.EditableMode.AnyKey | SourceGrid2.EditableMode.SingleClick; grid1[0, 3] = new Cells.ColumnHeader("ADDRESS (string)"); m_CellEditor_City = SourceGrid2.Utility.CreateDataModel(typeof(string)); m_CellEditor_City.EditableMode = SourceGrid2.EditableMode.Focus | SourceGrid2.EditableMode.AnyKey | SourceGrid2.EditableMode.SingleClick; grid1[0, 4] = new Cells.ColumnHeader("CITY (string)"); m_CellEditor_BirthDay = SourceGrid2.Utility.CreateDataModel(typeof(DateTime)); m_CellEditor_BirthDay.EditableMode = SourceGrid2.EditableMode.Focus | SourceGrid2.EditableMode.AnyKey | SourceGrid2.EditableMode.SingleClick; grid1[0, 5] = new Cells.ColumnHeader("BIRTHDATE (DateTime)"); m_CellEditor_Country = new SourceGrid2.DataModels.EditorComboBox(typeof(string), l_CountryList, false); m_CellEditor_Country.EditableMode = SourceGrid2.EditableMode.Focus | SourceGrid2.EditableMode.AnyKey | SourceGrid2.EditableMode.SingleClick; grid1[0, 6] = new Cells.ColumnHeader("COUNTRY (string + combobox)"); m_CellEditor_Price = new SourceGrid2.DataModels.EditorTextBox(typeof(double)); m_CellEditor_Price.TypeConverter = new SourceLibrary.ComponentModel.Converter.CurrencyTypeConverter(typeof(double)); m_CellEditor_Price.EditableMode = SourceGrid2.EditableMode.Focus | SourceGrid2.EditableMode.AnyKey | SourceGrid2.EditableMode.SingleClick; grid1[0, 7] = new Cells.ColumnHeader("$ PRICE (double)"); grid1[0, 8] = new Cells.ColumnHeader("Selected"); grid1[0, 9] = new Cells.ColumnHeader("WebSite"); #endregion #region Visual Properties //set Cells style m_VisualProperties = new SourceGrid2.VisualModels.Common(false); m_VisualPropertiesPrice = (SourceGrid2.VisualModels.Common)m_VisualProperties.Clone(false); m_VisualPropertiesPrice.TextAlignment = ContentAlignment.MiddleRight; m_VisualPropertiesCheckBox = (SourceGrid2.VisualModels.CheckBox)SourceGrid2.VisualModels.CheckBox.Default.Clone(false); m_VisualPropertiesLink = (SourceGrid2.VisualModels.Common)SourceGrid2.VisualModels.Common.LinkStyle.Clone(false); #endregion //read xml System.IO.StreamReader l_Reader = new System.IO.StreamReader(System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream("SampleProject.Samples.SampleData.xml")); System.Xml.XmlDocument l_XmlDoc = new System.Xml.XmlDocument(); l_XmlDoc.LoadXml(l_Reader.ReadToEnd()); l_Reader.Close(); System.Xml.XmlNodeList l_Rows = l_XmlDoc.SelectNodes("//row"); grid1.RowsCount = l_Rows.Count + 1; int l_RowsCount = 1; foreach (System.Xml.XmlNode l_Node in l_Rows) { #region Pupulate RowsCount grid1[l_RowsCount, 0] = new Cells.RowHeader(); grid1[l_RowsCount, 1] = new Cells.Cell(l_RowsCount); grid1[l_RowsCount, 1].DataModel = m_CellEditor_Id; grid1[l_RowsCount, 1].VisualModel = m_VisualProperties; grid1[l_RowsCount, 2] = new Cells.Cell(l_Node.Attributes["ContactName"].InnerText); grid1[l_RowsCount, 2].DataModel = m_CellEditor_Name; grid1[l_RowsCount, 2].VisualModel = m_VisualProperties; grid1[l_RowsCount, 3] = new Cells.Cell(l_Node.Attributes["Address"].InnerText); grid1[l_RowsCount, 3].DataModel = m_CellEditor_Address; grid1[l_RowsCount, 3].VisualModel = m_VisualProperties; grid1[l_RowsCount, 4] = new Cells.Cell(l_Node.Attributes["City"].InnerText); grid1[l_RowsCount, 4].DataModel = m_CellEditor_City; grid1[l_RowsCount, 4].VisualModel = m_VisualProperties; grid1[l_RowsCount, 5] = new Cells.Cell(DateTime.Today); grid1[l_RowsCount, 5].DataModel = m_CellEditor_BirthDay; grid1[l_RowsCount, 5].VisualModel = m_VisualProperties; grid1[l_RowsCount, 6] = new Cells.Cell(l_Node.Attributes["Country"].InnerText); grid1[l_RowsCount, 6].DataModel = m_CellEditor_Country; grid1[l_RowsCount, 6].VisualModel = m_VisualProperties; grid1[l_RowsCount, 7] = new Cells.Cell(25.0); grid1[l_RowsCount, 7].DataModel = m_CellEditor_Price; grid1[l_RowsCount, 7].VisualModel = m_VisualPropertiesPrice; grid1[l_RowsCount, 8] = new Cells.CheckBox(false); grid1[l_RowsCount, 8].VisualModel = m_VisualPropertiesCheckBox; grid1[l_RowsCount, 9] = new Cells.Link(l_Node.Attributes["website"].InnerText); grid1[l_RowsCount, 9].VisualModel = m_VisualPropertiesLink; ((Cells.Link)grid1[l_RowsCount, 9]).Click += new SourceGrid2.PositionEventHandler(CellLink_Click); #endregion l_RowsCount++; } grid1.AutoSizeAll(); }
private void frmSample3_Load(object sender, System.EventArgs e) { grid.Redim(46, 3); SourceGrid2.VisualModels.Common l_TitleModel = new SourceGrid2.VisualModels.Common(false); l_TitleModel.BackColor = Color.SteelBlue; l_TitleModel.ForeColor = Color.White; l_TitleModel.TextAlignment = ContentAlignment.MiddleCenter; SourceGrid2.VisualModels.Common l_CaptionModel = new SourceGrid2.VisualModels.Common(false); l_CaptionModel.BackColor = grid.BackColor; int l_CurrentRow = 0; #region Base Types grid[l_CurrentRow, 0] = new Cells.Cell("Base Types", null, l_TitleModel); grid[l_CurrentRow, 0].ColumnSpan = 3; l_CurrentRow++; //string grid[l_CurrentRow, 0] = new Cells.Cell("String", null, l_CaptionModel); grid[l_CurrentRow, 1] = new Cells.Cell("String Value", typeof(string)); l_CurrentRow++; //double grid[l_CurrentRow, 0] = new Cells.Cell("Double", null, l_CaptionModel); grid[l_CurrentRow, 1] = new Cells.Cell(1.5, typeof(double)); l_CurrentRow++; //int grid[l_CurrentRow, 0] = new Cells.Cell("Int", null, l_CaptionModel); grid[l_CurrentRow, 1] = new Cells.Cell(5, typeof(int)); l_CurrentRow++; //DateTime grid[l_CurrentRow, 0] = new Cells.Cell("DateTime", null, l_CaptionModel); grid[l_CurrentRow, 1] = new Cells.Cell(DateTime.Now, typeof(DateTime)); l_CurrentRow++; //Boolean grid[l_CurrentRow, 0] = new Cells.Cell("Boolean", null, l_CaptionModel); grid[l_CurrentRow, 1] = new Cells.Cell(true, typeof(Boolean)); l_CurrentRow++; #endregion #region Complex Types grid[l_CurrentRow, 0] = new Cells.Cell("Complex Types", null, l_TitleModel); grid[l_CurrentRow, 0].ColumnSpan = 3; l_CurrentRow++; //Font grid[l_CurrentRow, 0] = new Cells.Cell("Font", null, l_CaptionModel); grid[l_CurrentRow, 1] = new Cells.Cell(this.Font, typeof(Font)); l_CurrentRow++; //Cursor grid[l_CurrentRow, 0] = new Cells.Cell("Cursor", null, l_CaptionModel); grid[l_CurrentRow, 1] = new Cells.Cell(Cursors.Arrow, typeof(Cursor)); l_CurrentRow++; //Point grid[l_CurrentRow, 0] = new Cells.Cell("Point", null, l_CaptionModel); grid[l_CurrentRow, 1] = new Cells.Cell(new Point(2, 3), typeof(Point)); l_CurrentRow++; //Rectangle grid[l_CurrentRow, 0] = new Cells.Cell("Rectangle", null, l_CaptionModel); grid[l_CurrentRow, 1] = new Cells.Cell(new Rectangle(100, 100, 200, 200), typeof(Rectangle)); l_CurrentRow++; //Image grid[l_CurrentRow, 0] = new Cells.Cell("Image", null, l_CaptionModel); grid[l_CurrentRow, 1] = new Cells.Cell(null, typeof(Image)); l_CurrentRow++; //Enum AnchorStyle grid[l_CurrentRow, 0] = new Cells.Cell("AnchorStyle", null, l_CaptionModel); grid[l_CurrentRow, 1] = new Cells.Cell(AnchorStyles.Bottom, typeof(AnchorStyles)); l_CurrentRow++; //Enum grid[l_CurrentRow, 0] = new Cells.Cell("Enum", null, l_CaptionModel); grid[l_CurrentRow, 1] = new Cells.Cell(System.Windows.Forms.BorderStyle.Fixed3D, typeof(System.Windows.Forms.BorderStyle)); l_CurrentRow++; #endregion #region Special Editors and Cells grid[l_CurrentRow, 0] = new Cells.Cell("Special Editors and Cells", null, l_TitleModel); grid[l_CurrentRow, 0].ColumnSpan = 3; l_CurrentRow++; //Double Chars Validation grid[l_CurrentRow, 0] = new Cells.Cell("Double Chars Validation", null, l_CaptionModel); SourceGrid2.DataModels.EditorTextBoxNumeric l_NumericEditor = new SourceGrid2.DataModels.EditorTextBoxNumeric(typeof(double)); l_NumericEditor.NumericCharStyle = SourceLibrary.Windows.Forms.NumericCharStyle.DecimalSeparator | SourceLibrary.Windows.Forms.NumericCharStyle.NegativeSymbol; grid[l_CurrentRow, 1] = new Cells.Cell(0.5, l_NumericEditor); l_CurrentRow++; //String Chars (ABC) grid[l_CurrentRow, 0] = new Cells.Cell("String Chars Validation(only ABC)", null, l_CaptionModel); SourceGrid2.DataModels.EditorTextBox l_StringEditor = new SourceGrid2.DataModels.EditorTextBox(typeof(string)); l_StringEditor.ValidCharacters = new char[] { 'A', 'B', 'C' }; grid[l_CurrentRow, 1] = new Cells.Cell("AABB", l_StringEditor); l_CurrentRow++; //Int 0-100 or null grid[l_CurrentRow, 0] = new Cells.Cell("Int 0-100 or null", null, l_CaptionModel); SourceGrid2.DataModels.EditorTextBoxNumeric l_NumericEditor0_100 = new SourceGrid2.DataModels.EditorTextBoxNumeric(typeof(int)); l_NumericEditor0_100.NumericCharStyle = SourceLibrary.Windows.Forms.NumericCharStyle.None; l_NumericEditor0_100.MinimumValue = 0; l_NumericEditor0_100.MaximumValue = 100; l_NumericEditor0_100.AllowNull = true; grid[l_CurrentRow, 1] = new Cells.Cell(7, l_NumericEditor0_100); l_CurrentRow++; //Enum Custom Display grid[l_CurrentRow, 0] = new Cells.Cell("Enum Custom Display", null, l_CaptionModel); SourceGrid2.DataModels.EditorComboBox l_KeysCombo = new SourceGrid2.DataModels.EditorComboBox(typeof(Keys)); l_KeysCombo.ConvertingValueToDisplayString += new SourceLibrary.ComponentModel.ConvertingObjectEventHandler(l_KeysCombo_ConvertingValueToDisplayString); grid[l_CurrentRow, 1] = new Cells.Cell(Keys.Enter); grid[l_CurrentRow, 1].DataModel = l_KeysCombo; l_CurrentRow++; string[] l_CmbArr = new string[] { "Value 1", "Value 2", "Value 3" }; //ComboBox 1 grid[l_CurrentRow, 0] = new Cells.Cell("ComboBox String", null, l_CaptionModel); grid[l_CurrentRow, 1] = new Cells.ComboBox(l_CmbArr[0], typeof(string), l_CmbArr, false); l_CurrentRow++; //ComboBox 2 grid[l_CurrentRow, 0] = new Cells.Cell("ComboBox String Exclusive", null, l_CaptionModel); grid[l_CurrentRow, 1] = new Cells.ComboBox(l_CmbArr[0], typeof(string), l_CmbArr, true); l_CurrentRow++; //ComboBox 3 grid[l_CurrentRow, 0] = new Cells.Cell("ComboBox String No TextBox", null, l_CaptionModel); grid[l_CurrentRow, 1] = new Cells.ComboBox(l_CmbArr[0], typeof(string), l_CmbArr, true); grid[l_CurrentRow, 1].DataModel.AllowStringConversion = false; l_CurrentRow++; //ComboBox DateTime Editable grid[l_CurrentRow, 0] = new Cells.Cell("ComboBox DateTime", null, l_CaptionModel); DateTime[] l_CmbArrDt = new DateTime[] { new DateTime(1981, 10, 6), new DateTime(1991, 10, 6), new DateTime(2001, 10, 6) }; grid[l_CurrentRow, 1] = new Cells.ComboBox(l_CmbArrDt[0], typeof(DateTime), l_CmbArrDt, false); l_CurrentRow++; //ComboBox Custom Display (create a datamodel that has a custom display string) grid[l_CurrentRow, 0] = new Cells.Cell("ComboBox Custom Display", null, l_CaptionModel); int[] l_CmbArrInt = new int[] { 0, 1, 2, 3, 4 }; SourceGrid2.DataModels.EditorComboBox l_ComboBoxDescription = new SourceGrid2.DataModels.EditorComboBox(typeof(int), l_CmbArrInt, true); SourceLibrary.ComponentModel.Validator.ValueMapping l_ComboMapping = new SourceLibrary.ComponentModel.Validator.ValueMapping(); l_ComboMapping.DisplayStringList = new string[] { "0 - Zero", "1 - One", "2 - Two", "3 - Three", "4- Four" }; l_ComboMapping.ValueList = l_CmbArrInt; l_ComboMapping.BindValidator(l_ComboBoxDescription); grid[l_CurrentRow, 1] = new Cells.Cell(0); grid[l_CurrentRow, 1].DataModel = l_ComboBoxDescription; Cells.Cell l_CellComboRealValue = new Cells.Cell(grid[l_CurrentRow, 1].Value, null, l_CaptionModel); SourceGrid2.BehaviorModels.BindProperty l_ComboBindProperty = new SourceGrid2.BehaviorModels.BindProperty(typeof(Cells.Cell).GetProperty("Value"), l_CellComboRealValue); grid[l_CurrentRow, 1].Behaviors.Add(l_ComboBindProperty); grid[l_CurrentRow, 2] = l_CellComboRealValue; l_CurrentRow++; //Numeric Up Down Editor grid[l_CurrentRow, 0] = new Cells.Cell("NumericUpDown", null, l_CaptionModel); grid[l_CurrentRow, 1] = new Cells.Cell(0); SourceGrid2.DataModels.EditorNumericUpDown l_NumericUpDownEditor = new SourceGrid2.DataModels.EditorNumericUpDown(typeof(int), 100, 0, 1); grid[l_CurrentRow, 1].DataModel = l_NumericUpDownEditor; l_CurrentRow++; //Multiline Textbox grid[l_CurrentRow, 0] = new Cells.Cell("Multiline Textbox", null, l_CaptionModel); grid[l_CurrentRow, 0].ColumnSpan = 1; grid[l_CurrentRow, 0].RowSpan = 2; grid[l_CurrentRow, 1] = new Cells.Cell("Hello\r\nWorld"); SourceGrid2.DataModels.EditorTextBox l_MultilineEditor = new SourceGrid2.DataModels.EditorTextBox(typeof(string)); l_MultilineEditor.Multiline = true; grid[l_CurrentRow, 1].DataModel = l_MultilineEditor; grid[l_CurrentRow, 1].RowSpan = 2; l_CurrentRow++; l_CurrentRow++; //Boolean (CheckBox) grid[l_CurrentRow, 0] = new Cells.Cell("Boolean (CheckBox)", null, l_CaptionModel); grid[l_CurrentRow, 1] = new Cells.CheckBox(true); Cells.CheckBox l_DisabledCheckBox = new Cells.CheckBox("Disabled Checkbox", true); l_DisabledCheckBox.EnableEdit = false; grid[l_CurrentRow, 2] = l_DisabledCheckBox; l_CurrentRow++; //Cell Button grid[l_CurrentRow, 1] = new Cells.Button("CellButton"); l_CurrentRow++; //Cell Link grid[l_CurrentRow, 1] = new Cells.Link("CellLink"); l_CurrentRow++; #endregion #region Custom Formatting grid[l_CurrentRow, 0] = new Cells.Cell("Custom Formatting", null, l_TitleModel); grid[l_CurrentRow, 0].ColumnSpan = 3; l_CurrentRow++; //Percent Editor grid[l_CurrentRow, 0] = new Cells.Cell("Percent Format", null, l_CaptionModel); grid[l_CurrentRow, 1] = new Cells.Cell(0.5); SourceGrid2.DataModels.EditorTextBox l_PercentEditor = new SourceGrid2.DataModels.EditorTextBox(typeof(double)); l_PercentEditor.TypeConverter = new SourceLibrary.ComponentModel.Converter.PercentTypeConverter(typeof(double)); grid[l_CurrentRow, 1].DataModel = l_PercentEditor; l_CurrentRow++; //Currency Editor grid[l_CurrentRow, 0] = new Cells.Cell("Currency Format", null, l_CaptionModel); grid[l_CurrentRow, 1] = new Cells.Cell(50.0M); SourceGrid2.DataModels.EditorTextBox l_CurrencyEditor = new SourceGrid2.DataModels.EditorTextBox(typeof(decimal)); l_CurrencyEditor.TypeConverter = new SourceLibrary.ComponentModel.Converter.CurrencyTypeConverter(typeof(decimal)); grid[l_CurrentRow, 1].DataModel = l_CurrencyEditor; l_CurrentRow++; //Custom Format Number Editor grid[l_CurrentRow, 0] = new Cells.Cell("Custom Format Number", null, l_CaptionModel); Cells.Cell l_CellNumberEditor = new Cells.Cell(84.23); SourceGrid2.DataModels.EditorTextBox l_CustomFormatEditor = new SourceGrid2.DataModels.EditorTextBox(typeof(double)); l_CustomFormatEditor.EnableEdit = false; SourceLibrary.ComponentModel.Converter.NumberTypeConverter l_NumberConverter = new SourceLibrary.ComponentModel.Converter.NumberTypeConverter(typeof(double)); l_CustomFormatEditor.TypeConverter = l_NumberConverter; l_CellNumberEditor.DataModel = l_CustomFormatEditor; l_CellNumberEditor.VisualModel = l_CaptionModel; grid[l_CurrentRow, 1] = l_CellNumberEditor; grid[l_CurrentRow, 2] = new Cells.ComboBox(l_NumberConverter.Format, typeof(string), new string[] { "G", "C", "P", "000.00", "#.000" }, false); SourceGrid2.BehaviorModels.BindProperty l_BindProperty = new SourceGrid2.BehaviorModels.BindProperty(typeof(SourceLibrary.ComponentModel.Converter.NumberTypeConverter).GetProperty("Format"), l_NumberConverter); grid[l_CurrentRow, 2].Behaviors.Add(l_BindProperty); SourceGrid2.BehaviorModels.CustomEvents l_Event = new SourceGrid2.BehaviorModels.CustomEvents(); l_Event.ValueChanged += new SourceGrid2.PositionEventHandler(CellCustomFormat_ValueChanged); grid[l_CurrentRow, 2].Behaviors.Add(l_Event); l_CurrentRow++; //DateTime 2 (using custom formatting) string l_FormatDt2 = "yyyy MM dd"; grid[l_CurrentRow, 0] = new Cells.Cell("Date(" + l_FormatDt2 + ")", null, l_CaptionModel); string[] l_ParseFormat = new string[] { l_FormatDt2 }; System.Globalization.DateTimeStyles l_dtStyles = System.Globalization.DateTimeStyles.AllowInnerWhite | System.Globalization.DateTimeStyles.AllowLeadingWhite | System.Globalization.DateTimeStyles.AllowTrailingWhite | System.Globalization.DateTimeStyles.AllowWhiteSpaces; TypeConverter l_dtConverter = new SourceLibrary.ComponentModel.Converter.DateTimeTypeConverter(l_FormatDt2, l_ParseFormat, l_dtStyles); string tmp = l_dtConverter.ConvertToString(DateTime.Today); DateTime l_dtValue = (DateTime)l_dtConverter.ConvertFromString(tmp); SourceGrid2.DataModels.EditorUITypeEditor l_editorDt2 = new SourceGrid2.DataModels.EditorUITypeEditor(typeof(DateTime)); l_editorDt2.TypeConverter = l_dtConverter; grid[l_CurrentRow, 1] = new Cells.Cell(DateTime.Today, l_editorDt2); l_CurrentRow++; #endregion #region Image And Text Properties grid[l_CurrentRow, 0] = new Cells.Cell("Image And Text Properties", null, l_TitleModel); grid[l_CurrentRow, 0].ColumnSpan = 3; l_CurrentRow++; //Cell Image Cells.Cell l_CellImage1 = new Cells.Cell("Single Image", null, l_CaptionModel); grid[l_CurrentRow, 2] = l_CellImage1; l_CellImage1.RowSpan = 5; SourceGrid2.VisualModels.Common l_ModelImage = new SourceGrid2.VisualModels.Common(false); l_ModelImage.Image = SampleImages.FACE02; l_CellImage1.VisualModel = l_ModelImage; grid[l_CurrentRow, 0] = new Cells.Cell("Image Alignment", null, l_CaptionModel); grid[l_CurrentRow, 1] = new Cells.Cell(l_ModelImage.ImageAlignment, typeof(ContentAlignment)); grid[l_CurrentRow, 1].Behaviors.Add(new SourceGrid2.BehaviorModels.BindProperty(typeof(SourceGrid2.VisualModels.Common).GetProperty("ImageAlignment"), l_ModelImage)); l_CurrentRow++; grid[l_CurrentRow, 0] = new Cells.Cell("Stretch Image", null, l_CaptionModel); grid[l_CurrentRow, 1] = new Cells.Cell(l_ModelImage.ImageStretch, typeof(bool)); grid[l_CurrentRow, 1].Behaviors.Add(new SourceGrid2.BehaviorModels.BindProperty(typeof(SourceGrid2.VisualModels.Common).GetProperty("ImageStretch"), l_ModelImage)); l_CurrentRow++; grid[l_CurrentRow, 0] = new Cells.Cell("Text Alignment", null, l_CaptionModel); grid[l_CurrentRow, 1] = new Cells.Cell(l_ModelImage.TextAlignment, typeof(ContentAlignment)); grid[l_CurrentRow, 1].Behaviors.Add(new SourceGrid2.BehaviorModels.BindProperty(typeof(SourceGrid2.VisualModels.Common).GetProperty("TextAlignment"), l_ModelImage)); l_CurrentRow++; grid[l_CurrentRow, 0] = new Cells.Cell("AlignTextToImage", null, l_CaptionModel); grid[l_CurrentRow, 1] = new Cells.Cell(l_ModelImage.AlignTextToImage, typeof(bool)); grid[l_CurrentRow, 1].Behaviors.Add(new SourceGrid2.BehaviorModels.BindProperty(typeof(SourceGrid2.VisualModels.Common).GetProperty("AlignTextToImage"), l_ModelImage)); l_CurrentRow++; grid[l_CurrentRow, 0] = new Cells.Cell("StringFormat.FormatFlags", null, l_CaptionModel); grid[l_CurrentRow, 1] = new Cells.Cell(l_ModelImage.StringFormat.FormatFlags, typeof(StringFormatFlags)); grid[l_CurrentRow, 1].Behaviors.Add(new SourceGrid2.BehaviorModels.BindProperty(typeof(StringFormat).GetProperty("FormatFlags"), l_ModelImage.StringFormat)); l_CurrentRow++; // Cell VisualModelMultiImages grid[l_CurrentRow, 2] = new Cells.Cell("Multi Images"); grid[l_CurrentRow, 2].RowSpan = 5; SourceGrid2.VisualModels.MultiImages l_ModelMultiImages = new SourceGrid2.VisualModels.MultiImages(false); l_ModelMultiImages.SubImages.Add(new SourceGrid2.PositionedImage(SampleImages.FACE00, ContentAlignment.TopLeft)); l_ModelMultiImages.SubImages.Add(new SourceGrid2.PositionedImage(SampleImages.FACE01, ContentAlignment.TopRight)); l_ModelMultiImages.SubImages.Add(new SourceGrid2.PositionedImage(SampleImages.FACE02, ContentAlignment.BottomLeft)); l_ModelMultiImages.SubImages.Add(new SourceGrid2.PositionedImage(SampleImages.FACE04, ContentAlignment.BottomRight)); l_ModelMultiImages.StringFormat.FormatFlags = StringFormatFlags.DirectionVertical; grid[l_CurrentRow, 2].VisualModel = l_ModelMultiImages; l_CurrentRow++; l_CurrentRow++; l_CurrentRow++; l_CurrentRow++; #endregion grid.AutoSizeAll(); grid.AutoStretchColumnsToFitWidth = true; grid.StretchColumnsToFitWidth(); }