dgNotificacion.DataSource = correspondenciaNotificaciones;
dgNotificacion.EditorSelectionBehavior = EditorSelectionBehavior.SelectAll;
dgNotificacion.Columns.Clear();
dgNotificacion.Columns.Add(
new GridComboBoxColumn()
{
MappingName = "IdTercero",
HeaderText = "Tercero",
DataSource = tercerosNotificaciones,
ValueMember = "IdTercero",
DisplayMember = "Tercero",
AutoSizeColumnsMode = AutoSizeColumnsMode.Fill,
ValidationMode = GridValidationMode.InEdit,
DropDownStyle = DropDownStyle.DropDown,
AutoCompleteMode = AutoCompleteMode.Suggest,
AutoSuggestMode = AutoCompleteSuggestMode.Contains,
AutoSuggestDelay = 300
});
dgNotificacion.Columns.Add(new GridComboBoxColumn()
{
MappingName = "Email",
HeaderText = "Email",
ValueMember = "IdEmail",
DisplayMember = "Email",
DropDownStyle = DropDownStyle.DropDownList,
IDataSourceSelector = new CustomSelectorEmailTercero()
});
dgNotificacion.Columns.Add(
new GridComboBoxColumn()
{
MappingName = "TipoNotificacion",
HeaderText = "Tipo",
DataSource = tipoNotificaciones,
ValueMember = "Id",
DisplayMember = "Tipo",
MinimumWidth = 90,
AutoSizeColumnsMode = AutoSizeColumnsMode.AllCells,
ValidationMode = GridValidationMode.InEdit,
DropDownStyle = DropDownStyle.DropDown,
AutoCompleteMode = AutoCompleteMode.Suggest,
AutoSuggestMode = AutoCompleteSuggestMode.Contains,
AutoSuggestDelay = 300
});
dgNotificacion.Columns.Add(
new GridTextColumn()
{
MappingName = "Observaciones",
HeaderText = "Observaciones",
MinimumWidth = 190,
AutoSizeColumnsMode = AutoSizeColumnsMode.AllCells,
ValidationMode = GridValidationMode.InEdit,
});
dgNotificacion.Columns.Add(
new GridDateTimeColumn()
{
MappingName = "FechaHoraEnvio",
HeaderText = "Fecha envío",
Format = "dd/MM/yyyy HH:mm",
MinimumWidth = 110,
AllowNull = true,
AllowEditing = false,
AllowFiltering = false,
AutoSizeColumnsMode = AutoSizeColumnsMode.AllCells,
ValidationMode = GridValidationMode.InEdit,
});
dgNotificacion.Columns.Add(new GridButtonColumn()
{
MappingName = "Enviar",
HeaderText = "Enviar",
AllowFiltering = false,
AllowDefaultButtonText = true,
DefaultButtonText = "",
ImageSize = new Size(16, 16),
AutoSizeColumnsMode = AutoSizeColumnsMode.AllCells,
Image = Resources.Enviar_16,
CellStyle = new Syncfusion.WinForms.DataGrid.Styles.CellStyleInfo { HorizontalAlignment = HorizontalAlignment.Center },
});
dgNotificacion.Columns.Add(new GridButtonColumn()
{
MappingName = "Eliminar",
HeaderText = "X",
AllowFiltering = false,
AllowDefaultButtonText = true,
DefaultButtonText = "",
ImageSize = new Size(16, 16),
AutoSizeColumnsMode = AutoSizeColumnsMode.AllCells,
Image = Resources.feEliminar_16,
CellStyle = new Syncfusion.WinForms.DataGrid.Styles.CellStyleInfo { HorizontalAlignment = HorizontalAlignment.Center },
});
public class CustomSelectorEmailTercero : IDataSourceSelector
{
IEnumerable IDataSourceSelector.GetDataSource(object record, object dataSource)
{
if (dataSource == null)
return null;
if (record == null)
return null;
CorrespondenciaNotificaciones correspondenciaNotificacion = record as CorrespondenciaNotificaciones;
int idTercero = correspondenciaNotificacion.IdTercero ?? 0;
TerceroCN terceroCN = new TerceroCN();
var emails = terceroCN.ObtenerEmailsTercero(idTercero);
return emails;
}
}
Thanks