У меня довольно сложный сценарий ComboBox, и, будучи новичком в программировании, я борюсь с тем, какой подход лучше всего использовать.
У меня есть DataSet с DataTable, который имеет несколько числовых столбцов данных. Числовые данные состоят из расстояний, указанных в стандартных единицах США. В настоящее время мои ComboBox настроены и работают, но мне нужно расширить то, что у меня есть в настоящее время, двумя способами.
Мне нужно иметь возможность преобразовывать десятичные числа в моем столбце данных, отображаемом в дроби, есть ли способ сделать это и сохранить привязку данных? В этом случае это элемент отображения источника данных...
Мне нужно иметь возможность отображать параметры раскрывающегося списка в разных наборах единиц... Я написал классы преобразования единиц, чтобы помочь позаботиться об этом, но я не знаю, могу ли я как-то это сделать и поддерживать привязку данных ? Я также хотел бы преобразовать единицы измерения в элементы отображения...
Private Sub ComboBox1_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles ComboBox1.SelectionChangeCommitted Select Case ComboBox1.SelectedItem Case "Tire1" With ComboBox2 .DataSource = Tire1BindingSource .ValueMember = "OD" .DisplayMember = "OD" End With Case "Tire2" With ComboBox2 .DataSource = Tire2BindingSource .ValueMember = "OD" .DisplayMember = "OD" End With Case "Tire3" With ComboBox2 .DataSource = Tire3BindingSource .ValueMember = "OD" .DisplayMember = "OD" End With Case "HubCap" ComboBox3.DataSource = Nothing With ComboBox2 .DataSource = HubcapBindingSource .ValueMember = "ID" .DisplayMember = "ID" End With End Select End Sub Private Sub ComboBox2_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles ComboBox2.SelectionChangeCommitted Select Case ComboBox1.SelectedItem Case "Tire1" With ComboBox3 .DataSource = Tire1BindingSource .ValueMember = "ID" .DisplayMember = "Weight" End With Case "Tire2" With ComboBox3 .DataSource = Tire2BindingSource .ValueMember = "ID" .DisplayMember = "Weight" End With Case "Tire3" With ComboBox3 .DataSource = Tire3BindingSource .ValueMember = "ID" .DisplayMember = "Weight" End With Case "HubCap" ComboBox3.DataSource = Nothing With ComboBox2 .DataSource = HubCapBindingSource .ValueMember = "ID" .DisplayMember = "ID" End With End Select
Каков наилучший подход к использованию ComboBox при решении таких проблем, как отображение дробей и единиц...