• 0

[C#] ComboBox Specified Cast Not Valid!


Question

This is the code:

cmbBalSheetCat.Items.Clear();
cmbBalSheetCat.DataSource = dtResults;
cmbBalSheetCat.ValueMember = "BalanceSheetCategoryID";
cmbBalSheetCat.DisplayMember = "BalanceSheetCategoryName";
cmbBalSheetCat.SelectedIndex = -1;

It errors on setting the .ValueMember saying the 'Specified cast is not valid'.

dtResults is populated like so:

dtResults = new DataTable();
dtResults.Columns.Add("BalanceSheetCategoryIDddtResults.Columns.Add("BalanceSheetCategoryNameddtResults.Columns.Add("BalanceSheetCategoryOrderforeach( BalSheetCatData objBalSheetCatData in this.Values )
{
	DataRow dtRow = dtBalSheetCats.NewRow();
	dtRow["BalanceSheetCategoryID"] = objBalSheetCatData.BalanceSheetCategoryID;
	dtRow["BalanceSheetCategoryName"] = objBalSheetCatData.BalanceSheetCategoryName;
	dtRow["BalanceSheetCategoryOrder"] = objBalSheetCatData.BalanceSheetCategoryOrder;
	dtResults.Rows.Add( dtRow );
}

I dont understand why im getting this error. I have similar code for a combo on a different form that works fine!!

Do i need to specify column types or something? If so, how comes it works fine without it on other forms and not this one?

Any ideas?

Link to comment
https://www.neowin.net/forum/topic/416380-c-combobox-specified-cast-not-valid/
Share on other sites

4 answers to this question

Recommended Posts

  • 0

__________________________________________________________________

Ah ok... just found its not the .ValueMember line that it is erroring on. Its because the combo has an associated _SelectedIndexChanged() method and its erroring inside there.

To fix the problem, ive used a boolean value to store whether the combo data has been loaded and the _SelectedIndexChanged() only executes code when that boolean is true.

But this seems somewhat feeble... is there a better way of doing this? A setting ive missed?

  • 0

Just a quick note to give u a helping hand, Databinding an Array of objects or values (MyObject[]) isn't the same as binding an ArrayList of MyObject for example. The former been non enumerable by default and wont store the combobox wont store ValueMember.

Ie.

MyObject[] objMyObjects = null;

... initialize myobjects array...

Combobox1.DisplayMember = "Description";

Combobox1.ValueMember = "ID";

Combobox1.DataSource = objMyObjects;

this will cause the Combobox1 to not hold the selected objects value as it isnt Enumerable. A nice way around this would be too simply to do following...

MyObject[] objMyObjects = null;

... initialize myobjects array...

Combobox1.DisplayMember = "Description";

Combobox1.ValueMember = "ID";

Combobox1.DataSource = new ArrayList(objMyObjects);

This will enable enumeration for ur combobox, and as such it will hold the values correctly.

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • Elon Musk doesn't want you to know Tesla's response to the NHTSA's Robotaxi questions by David Uzondu Recently, Tesla's Robotaxi service began operating in Austin, and almost immediately, the company decided it would prefer you didn't see its homework. Before the launch, the National Highway Traffic Safety Administration (NHTSA) sent Tesla a letter with a deadline of June 19th to answer some questions. Now that Tesla has replied, it has requested that the NHTSA withhold the entire response from the public, classifying it as confidential business information. This isn't too surprising, as the company is notoriously secretive about its performance data, especially in areas like Autopilot and Full Self-Driving. Here are a few paraphrased versions of the questions Tesla faced: How will the system handle bad weather or poor visibility? What happens if the system detects that it cannot drive safely? Does it pull over? Will a human be monitoring the cars remotely or in person? Does the system follow any existing industry standards for autonomous driving? When does Tesla plan to let other people operate their own cars as robotaxis? The feds have good reason to ask. On its first day, Tesla's Robotaxi service was caught on video making some questionable moves, including driving in the wrong lane against traffic, as seen below (full video here). The clip was also shared in our community forums, though you'll need a free membership to access the off-topic section. Here's another showing a Robotaxi dropping passengers in the middle of an intersection. For now, the service runs with a human safety driver (likely a Tesla employee) in the passenger seat. Billionaire Dan O'Dowd, a persistent critic of Tesla's software, felt the company's launch was lackluster, and the videos circulating online demonstrate that the technology is years behind competitors like Waymo, which has operated without in-car supervisors since 2019. For its part, NHTSA acknowledged being aware of the widely reported incidents and is in contact with Tesla to get more information. The agency's statement reminded the public that manufacturers self-certify their vehicles' safety, and NHTSA's role is to investigate and act on safety problems after they are on the road: This situation gets even more interesting when you look at the bigger picture. Musk has already been criticized for his role in the Department of Government Efficiency (DOGE), which has led to job cuts at agencies that oversee his companies, including the Federal Aviation Administration (FAA) for SpaceX, the Food and Drug Administration (FDA) for Neuralink, and, of course, NHTSA. This has led some to worry about regulatory capture. As one cynical comment on Electrek's article notes, the official who signed the letter to Tesla, Tanya Topka, Director of NHTSA's Office of Defects Investigation, may have put a target on her back just for trying to hold the company accountable.
    • Have you ever developed a game for Xbox and Windows at the same time? To say that they are not the same operating system and the same DirecTx by chance?? It's obvious that it isn't, right? So what if Xbox uses HyperV? What difference does that make to a game developer? The PS4 is more different than the PS5, different operating systems and different APIs. The games are not backwards compatible However, a game made in Windows can be transferred to Xbox SX in a few weeks with little programming costs because they are the same API and the same Windows
    • Idiot, FH5 sold more on Xbox and Windows than on PS5. You tell lies like that and think no one will check, right? There are a lot of FIFA and CoD hacks on PS4 and PS5 being used every day and Sony doesn't do anything. You can also buy a game's Platinum achievement without having bought the game and Sony doesn't do anything.
    • $80 a game? What do I get for it? A broken game on release, with needs GBs of storage for patches. Still going to put up with micro purchasing? Still need internet to play the game? yep. I could go on, point is...you're paying more but not getting more than what is already being offered by competitors (at a lower price).
  • Recent Achievements

    • First Post
      956400 earned a badge
      First Post
    • Week One Done
      davidfegan earned a badge
      Week One Done
    • First Post
      Ainajohn earned a badge
      First Post
    • Conversation Starter
      sophiaisabella32 earned a badge
      Conversation Starter
    • First Post
      Brett76 earned a badge
      First Post
  • Popular Contributors

    1. 1
      +primortal
      592
    2. 2
      ATLien_0
      223
    3. 3
      Michael Scrip
      173
    4. 4
      +FloatingFatMan
      146
    5. 5
      Xenon
      134
  • Tell a friend

    Love Neowin? Tell a friend!