Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C#
  4. Databind won't work for Combobox and Checkbox

Databind won't work for Combobox and Checkbox

Scheduled Pinned Locked Moved C#
helpwpfwcfquestion
4 Posts 2 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • Y Offline
    Y Offline
    yuifox
    wrote on last edited by
    #1

    Hi ! Pardon for my bad english. Ive been working this code for weeks,

    foreach (Control Ctrl in this.Controls)
    {
    switch (Ctrl.GetType().ToString())
    {
    case "clarinrt.form.other.sdate":
    if (Ctrl.Tag.ToString() != "") Ctrl.DataBindings.Add(new Binding("Text", formdataset, Ctrl.Tag.ToString()));
    break;
    case "clarinrt.form.other.slookup":
    if (Ctrl.Tag.ToString() != "") Ctrl.DataBindings.Add(new Binding("Text", formdataset, Ctrl.Tag.ToString()));
    break;
    case "clarinrt.form.other.scheck":
    if (Ctrl.Tag.ToString() != "") Ctrl.DataBindings.Add(new Binding("Checked", formdataset, Ctrl.Tag.ToString()));
    break;
    case "clarinrt.form.other.snumeric":
    if (Ctrl.Tag.ToString() != "") Ctrl.DataBindings.Add(new Binding("Text", formdataset, Ctrl.Tag.ToString()));
    break;
    case "clarinrt.form.other.stext":
    if (Ctrl.Tag.ToString() != "") Ctrl.DataBindings.Add(new Binding("Text", formdataset, Ctrl.Tag.ToString()));
    break;
    case "clarinrt.form.other.sdropdown":
    if (Ctrl.Tag.ToString() != "") Ctrl.DataBindings.Add(new Binding("SelectedIndex", formdataset, Ctrl.Tag.ToString()));
    break;
    default:
    break;
    }

            }
    

    For each control, TAG property will be filled such as "account.detail" refering to a column in table name, while formdataset is Dataset for this form. This code in Load method on base form. the problem with sdropdown and scheck which inherited from combobox and Checkbox. If I comment out, those two part, Databind work fine. Can someone told me, what I should do ? sdropdown will be databind with Integer column while scheck will be databind with Boolean column Thank you for your help...

    L 1 Reply Last reply
    0
    • Y yuifox

      Hi ! Pardon for my bad english. Ive been working this code for weeks,

      foreach (Control Ctrl in this.Controls)
      {
      switch (Ctrl.GetType().ToString())
      {
      case "clarinrt.form.other.sdate":
      if (Ctrl.Tag.ToString() != "") Ctrl.DataBindings.Add(new Binding("Text", formdataset, Ctrl.Tag.ToString()));
      break;
      case "clarinrt.form.other.slookup":
      if (Ctrl.Tag.ToString() != "") Ctrl.DataBindings.Add(new Binding("Text", formdataset, Ctrl.Tag.ToString()));
      break;
      case "clarinrt.form.other.scheck":
      if (Ctrl.Tag.ToString() != "") Ctrl.DataBindings.Add(new Binding("Checked", formdataset, Ctrl.Tag.ToString()));
      break;
      case "clarinrt.form.other.snumeric":
      if (Ctrl.Tag.ToString() != "") Ctrl.DataBindings.Add(new Binding("Text", formdataset, Ctrl.Tag.ToString()));
      break;
      case "clarinrt.form.other.stext":
      if (Ctrl.Tag.ToString() != "") Ctrl.DataBindings.Add(new Binding("Text", formdataset, Ctrl.Tag.ToString()));
      break;
      case "clarinrt.form.other.sdropdown":
      if (Ctrl.Tag.ToString() != "") Ctrl.DataBindings.Add(new Binding("SelectedIndex", formdataset, Ctrl.Tag.ToString()));
      break;
      default:
      break;
      }

              }
      

      For each control, TAG property will be filled such as "account.detail" refering to a column in table name, while formdataset is Dataset for this form. This code in Load method on base form. the problem with sdropdown and scheck which inherited from combobox and Checkbox. If I comment out, those two part, Databind work fine. Can someone told me, what I should do ? sdropdown will be databind with Integer column while scheck will be databind with Boolean column Thank you for your help...

      L Offline
      L Offline
      Lost User
      wrote on last edited by
      #2

      You're abusing the "Tag" property. Databinding works best for properties, not for function-calls like "ToString".

      Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^]

      Y 1 Reply Last reply
      0
      • L Lost User

        You're abusing the "Tag" property. Databinding works best for properties, not for function-calls like "ToString".

        Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^]

        Y Offline
        Y Offline
        yuifox
        wrote on last edited by
        #3

        Hi There ! I've using some properties set in my class to replace Tag

            public string cfield { get; set; }
        

        but it is doesnt work for checkbox and combobox. Thank you for your help.

        L 1 Reply Last reply
        0
        • Y yuifox

          Hi There ! I've using some properties set in my class to replace Tag

              public string cfield { get; set; }
          

          but it is doesnt work for checkbox and combobox. Thank you for your help.

          L Offline
          L Offline
          Lost User
          wrote on last edited by
          #4

          A dataset doesn't implement INotifyPropertyChanged; you might need to create a wrapper for it.

          public partial class Form1 : Form, INotifyPropertyChanged
          {
              bool \_test;
              public bool Test
              {
                  get { return \_test; }
                  set 
                  { 
                      \_test = value;
                      PropertyChangedEventHandler handler = this.PropertyChanged;
                      if (null != handler)
                          handler(this, new PropertyChangedEventArgs("Test")); 
                  }
              } 
          
              public Form1()
              {
                  Test = true;
                  InitializeComponent();
                  checkBox1.DataBindings.Add(new Binding("Checked", this, "Test"));
              }
          
              private void button1\_Click(object sender, EventArgs e)
              {
                  Test = !Test;
              }
          
              public event PropertyChangedEventHandler PropertyChanged;
          }
          

          Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^]

          1 Reply Last reply
          0
          Reply
          • Reply as topic
          Log in to reply
          • Oldest to Newest
          • Newest to Oldest
          • Most Votes


          • Login

          • Don't have an account? Register

          • Login or register to search.
          • First post
            Last post
          0
          • Categories
          • Recent
          • Tags
          • Popular
          • World
          • Users
          • Groups