private void cboOptions_SelectedIndexChanged(object sender, EventArgs e)
{
var data = GetCurrentData();
int oldIndex = TypeConverter.h2si(data);
switch (element.type)
{
case ElementValueType.SByte:
case ElementValueType.Byte:
oldIndex = (int)TypeConverter.h2sb(data);
break;
case ElementValueType.Short:
case ElementValueType.UShort:
oldIndex = (int)TypeConverter.h2ss(data);
break;
case ElementValueType.Int:
case ElementValueType.UInt:
oldIndex = TypeConverter.h2si(data);
break;
default:
oldIndex = -1;
break;
}
var cbi = this.cboOptions.SelectedItem as comboBoxItem;
if (cbi != null)
{
int newIndex = cbi.value;
if (oldIndex != newIndex && newIndex != -1)
{
oldIndex = newIndex;
switch (element.type)
{
case ElementValueType.SByte:
case ElementValueType.Byte:
SetCurrentData(new ArraySegment<byte>(TypeConverter.sb2h((sbyte)newIndex)));
break;
case ElementValueType.Short:
case ElementValueType.UShort:
SetCurrentData(new ArraySegment<byte>(TypeConverter.ss2h((short)newIndex)));
break;
case ElementValueType.Int:
case ElementValueType.UInt:
SetCurrentData(new ArraySegment<byte>(TypeConverter.si2h(newIndex)));
break;
}
Changed = true;
UpdateText();
}
}
}