Hallo,
Een voor mij nog even vreemde situatie, maar misschien kan iemand mij op weg helpen? Het gaat over data binding in combinatie met een tab control.
- één Windows Form met een tab control
- tab control bevat twee tab pages: tabPage1 en tabPage2.
- Op de beide tabpages plaatst ik een textbox.
In code verbind ik de beide textboxes met een data source.
Op diezelfde tabPage1 heb ik een Button. Het is de bedoeling dat met de klik de waarde van Textbox2 van tabpage2 wordt weergegeven.
En nu komt voor mij het onbegrijpelijk... Als ik dit test-app start (en de data source bevat gegevens), dan zie ik die verschijnen in textBox1 op tabpage1. Maar als ik klik op de button, krijg ik als return niks (string.Empty).
Klik ik even op tabpage2, dan zie ik wel de tekst staan in het textBox2. Klik ik terug op tabpage1 en dan weer op die button, zie ik de tekst wel verschijnen.
Oke, ik ben dit verder gaan bekijken en na wat docs te lezen kwam ik er achter dat de beide tabpages een eigen bindingcontext gebruiken. In een MS doc wordt er een voorbeeld gegeven hoe ik toch het voor elkaar kan krijgen dat de controls (textbox2) van andere tabpage (tabpage2) "meedoen" met diezelfde databinding en bindingcontext.
Maar dit werkt niet: dan blijft textbox2 op tabpage2 leeg (ook als ik tabpage2 aanklik voor weergave).
Kortom, ik snap het even niet meer. Hoe moet ik nu de controls van een andere tabpage zodanig mee laten doen met een "centrale" bindingcontext (begrijp ik het zo goed?).
Bedankt!
Een voor mij nog even vreemde situatie, maar misschien kan iemand mij op weg helpen? Het gaat over data binding in combinatie met een tab control.
- één Windows Form met een tab control
- tab control bevat twee tab pages: tabPage1 en tabPage2.
- Op de beide tabpages plaatst ik een textbox.
In code verbind ik de beide textboxes met een data source.
C#:
1
2
3
4
5
6
7
| protected override void OnLoad(EventArgs e) { base.OnLoad(e); textBox1.DataBindings.Add("Text", bindingSource1, "Title"); textBox2.DataBindings.Add("Text", bindingSource1, "Comment"); } |
Op diezelfde tabPage1 heb ik een Button. Het is de bedoeling dat met de klik de waarde van Textbox2 van tabpage2 wordt weergegeven.
C#:
1
2
3
4
| private void button1_Click(object sender, EventArgs e) { MessageBox.Show(textBox2.Text); } |
En nu komt voor mij het onbegrijpelijk... Als ik dit test-app start (en de data source bevat gegevens), dan zie ik die verschijnen in textBox1 op tabpage1. Maar als ik klik op de button, krijg ik als return niks (string.Empty).
Oke, ik ben dit verder gaan bekijken en na wat docs te lezen kwam ik er achter dat de beide tabpages een eigen bindingcontext gebruiken. In een MS doc wordt er een voorbeeld gegeven hoe ik toch het voor elkaar kan krijgen dat de controls (textbox2) van andere tabpage (tabpage2) "meedoen" met diezelfde databinding en bindingcontext.
C#:
1
2
3
| // In de OnLoad event van het form tabPage1.BindingContext = this.BindingContext; tabPage2.BindingContext = this.BindingContext; |
Maar dit werkt niet: dan blijft textbox2 op tabpage2 leeg (ook als ik tabpage2 aanklik voor weergave).
Kortom, ik snap het even niet meer. Hoe moet ik nu de controls van een andere tabpage zodanig mee laten doen met een "centrale" bindingcontext (begrijp ik het zo goed?).
Bedankt!