Exemplo n.º 1
0
 internal static DataRow GetSelectedRow(object DataSource, string ValueMember = null, string DisplayMember = null, object SelectedValue = null, bool AutoGenerateColumns = false)
 {
     SelectItemForm.ColumnDefinition[] Columns = null;
     if (!AutoGenerateColumns && !string.IsNullOrWhiteSpace(ValueMember) && !string.IsNullOrWhiteSpace(DisplayMember))
     {
         Columns = new SelectItemForm.ColumnDefinition[] {
             SelectItemForm.CreateColumnDefinition("Value", ValueMember),
             SelectItemForm.CreateColumnDefinition("Name", DisplayMember, FillWeight: 100),
         };
     }
     using (var form = new SelectItemForm(DataSource, SelectedValue, Columns))
     {
         try
         {
             var pos = form.bindingSource.Find(ValueMember, SelectedValue);
             if (pos >= 0)
             {
                 form.bindingSource.Position = pos;
             }
         }
         catch { }
         if (FormServices.ShowFormDialog(form) == DialogResult.OK)
         {
             var drv = form.bindingSource.Current as DataRowView;
             if (drv != null)
             {
                 return(drv.Row);
             }
             else
             {
                 return(form.bindingSource.Current as DataRow);
             }
         }
         else
         {
             return(null);
         }
     }
 }