private void AddPhoneRow(Phone newPhone) { datatablePhones.NRows = RowNum + 1; var phoneDataCombo = new yListComboBox(); phoneDataCombo.WidthRequest = 100; phoneDataCombo.SetRenderTextFunc((PhoneType x) => x.Name); phoneDataCombo.ItemsList = phoneTypes; phoneDataCombo.Binding.AddBinding(newPhone, e => e.NumberType, w => w.SelectedItem).InitializeFromSource(); datatablePhones.Attach (phoneDataCombo, (uint)0, (uint)1, RowNum, RowNum + 1, AttachOptions.Fill | AttachOptions.Expand, (AttachOptions)0, (uint)0, (uint)0); Gtk.Label textPhoneLabel = new Gtk.Label ("+7"); datatablePhones.Attach (textPhoneLabel, (uint)1, (uint)2, RowNum, RowNum + 1, (AttachOptions)0, (AttachOptions)0, (uint)0, (uint)0); var phoneDataEntry = new yValidatedEntry (); phoneDataEntry.ValidationMode = ValidationType.phone; phoneDataEntry.WidthChars = 19; phoneDataEntry.Binding.AddBinding(newPhone, e => e.Number, w => w.Text).InitializeFromSource(); datatablePhones.Attach (phoneDataEntry, (uint)2, (uint)3, RowNum, RowNum + 1, AttachOptions.Expand | AttachOptions.Fill, (AttachOptions)0, (uint)0, (uint)0); Gtk.Label textAdditionalLabel = new Gtk.Label ("доб."); datatablePhones.Attach (textAdditionalLabel, (uint)3, (uint)4, RowNum, RowNum + 1, (AttachOptions)0, (AttachOptions)0, (uint)0, (uint)0); var additionalDataEntry = new yEntry (); additionalDataEntry.WidthRequest = 50; additionalDataEntry.MaxLength = 10; additionalDataEntry.Binding.AddBinding(newPhone, e => e.Additional, w => w.Text).InitializeFromSource(); datatablePhones.Attach (additionalDataEntry, (uint)4, (uint)5, RowNum, RowNum + 1, AttachOptions.Expand | AttachOptions.Fill, (AttachOptions)0, (uint)0, (uint)0); Gtk.Button deleteButton = new Gtk.Button (); Gtk.Image image = new Gtk.Image (); image.Pixbuf = Stetic.IconLoader.LoadIcon (this, "gtk-delete", global::Gtk.IconSize.Menu); deleteButton.Image = image; deleteButton.Clicked += OnButtonDeleteClicked; datatablePhones.Attach (deleteButton, (uint)5, (uint)6, RowNum, RowNum + 1, (AttachOptions)0, (AttachOptions)0, (uint)0, (uint)0); datatablePhones.ShowAll (); RowNum++; }
private void AddEmailRow(Email newEmail) { datatableEmails.NRows = RowNum + 1; var emailDataCombo = new yListComboBox(); emailDataCombo.WidthRequest = 100; emailDataCombo.SetRenderTextFunc ((EmailType x) => x.Name); emailDataCombo.ItemsList = emailTypes; emailDataCombo.Binding.AddBinding(newEmail, e => e.EmailType, w => w.SelectedItem).InitializeFromSource(); datatableEmails.Attach (emailDataCombo, (uint)0, (uint)1, RowNum, RowNum + 1, AttachOptions.Fill | AttachOptions.Expand, (AttachOptions)0, (uint)0, (uint)0); yValidatedEntry emailDataEntry = new yValidatedEntry(); emailDataEntry.ValidationMode = ValidationType.email; emailDataEntry.Binding.AddBinding(newEmail, e => e.Address, w => w.Text).InitializeFromSource(); datatableEmails.Attach (emailDataEntry, (uint)1, (uint)2, RowNum, RowNum + 1, AttachOptions.Expand | AttachOptions.Fill, (AttachOptions)0, (uint)0, (uint)0); Gtk.Button deleteButton = new Gtk.Button (); Gtk.Image image = new Gtk.Image (); image.Pixbuf = Stetic.IconLoader.LoadIcon (this, "gtk-delete", global::Gtk.IconSize.Menu); deleteButton.Image = image; deleteButton.Clicked += OnButtonDeleteClicked; datatableEmails.Attach (deleteButton, (uint)2, (uint)3, RowNum, RowNum + 1, (AttachOptions)0, (AttachOptions)0, (uint)0, (uint)0); datatableEmails.ShowAll (); RowNum++; }