After searching and adding things up MANY times, you CAN take it off! To correctly use the combo box in the DataRepeater, you will need to add the following events.
this.dataForm.ItemCloned += new Microsoft.VisualBasic.PowerPacks.DataRepeaterItemEventHandler(dataForm_ItemCloned);
this.dataForm.DrawItem += new Microsoft.VisualBasic.PowerPacks.DataRepeaterItemEventHandler(dataForm_DrawItem);
this.cbPackage.SelectedIndexChanged += new System.EventHandler(cbColor_SelectedIndexChanged);
MSDN ItemCloned
MSDN DrawItem
, ItemCloned, ( )
void dataForm_ItemCloned(object sender, Microsoft.VisualBasic.PowerPacks.DataRepeaterItemEventArgs e)
{
var combo = (ComboBox)e.DataRepeaterItem.Controls.Find("cbColor", false)[0];
Combo.DataSource = System.Enum.GetValues(typeof(DataRepeater.ColorTypes));
}
, . , , , , reset .
void dataForm_DrawItem(object sender, Microsoft.VisualBasic.PowerPacks.DataRepeaterItemEventArgs e)
{
var dataRepeater = (Microsoft.VisualBasic.PowerPacks.DataRepeater)sender;
var combo = (ComboBox)e.DataRepeaterItem.Controls.Find("cbPackage", false)[0];
Combo.SelectedItem = ((List<LineItem>)DataRepeater.DataSource)[e.DataRepeaterItem.ItemIndex].PackageType;
}
, , . . , , combobox.
void cbPackage_SelectedIndexChanged(object sender, System.EventArgs e)
{
var combo = (ComboBox)sender;
var dataRepeaterItem = (Microsoft.VisualBasic.PowerPacks.DataRepeaterItem)combo.Parent;
var dataRepeater = (Microsoft.VisualBasic.PowerPacks.DataRepeater)combo.Parent.Parent;
var source = ((List<ColorData>)DataRepeater.DataSource)[DataRepeaterItem.ItemIndex];
source.PackageType = (DropData)combo.SelectedValue;
}
... , .