Toon posts:

[C#] Textbox niet veranderbaar na gebruik variable

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo,

Ik was bezig met het maken van een simpele applicatie voor WP7. Maar nu stuitte ik op een probleem.

In een textbox wil ik een variabele al source hebben. (Nu is dat niet zo moeilijk om te doen) Maar daarbij wil ik ook dat er in de textbox nog gewoon kan worden getypt. Maar blijkbaar kan dat niet meer.

Weet iemand hier een oplossing voor? Ik wil niet een 2de textbox aanmaken om hem vervolgens daar in te stoppen want anders word het veels te druk.

Momenteel gebruik ik isolatedstorage (zodat het word opgeslagen) maar ook met een gewone variabele werkt het niet.

Via Google kwam ik alleen uit op manieren hoe ik hem juist niet veranderbaar maak.

Acties:
  • 0 Henk 'm!

  • Razr
  • Registratie: September 2005
  • Niet online
Dus eigenlijk zeg je dat een tekstveld, welke initieel gevuld wordt daarna niet meer te bewerken is? Weet je zeker dat je een tekstveld gebruikt en geen label o.i.d.?

Plaats anders hier eens de relevante XAML-code.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
@Razr

Ja dat is precies wat er gebeurt

code:
1
<TextBox Height="244" HorizontalAlignment="Left" Margin="1,84,0,0" Name="textBox1" Text="TextBox" VerticalAlignment="Top" Width="223" TextChanged="textBox1_TextChanged" />

[ Voor 15% gewijzigd door Verwijderd op 21-10-2011 19:52 ]


Acties:
  • 0 Henk 'm!

  • HerrKauwer
  • Registratie: Augustus 2010
  • Laatst online: 02-10 10:41
TextBlock is een label-achtig veld, dus alleen voor weergave, je moet TextBox gebruiken als je ook wilt dat het aanpasbaar is

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
@ Herr

Oh fail, verkeerde code ingevoerd, nu is het wel de textbox die ik bedoel :) (Ja ik ben de code 3 keer na gelopen of ik niet dezelfde fout had gemaakt als hier net)

Acties:
  • 0 Henk 'm!

  • alwinuzz
  • Registratie: April 2008
  • Nu online
Wat gebeurt er allemaal in je textBox1_TextChanged ? Kan je wel typen als je dat (tijdelijk) weghaalt?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Nee ik kan niks weghalen en ook niks toevoegen.

Er word vanuit isolated storage een txt bestand gehaald met de benodigde text. En die word vervolgens in de textbox geplaatst. Ik heb het ook zonder die code ge probeert en dan met een standaard variabele en dan nog kan ik niks toevoegen en niks weghalen

Acties:
  • 0 Henk 'm!

  • Razr
  • Registratie: September 2005
  • Niet online
Verwijderd schreef op vrijdag 21 oktober 2011 @ 20:09:
Nee ik kan niks weghalen en ook niks toevoegen.

Er word vanuit isolated storage een txt bestand gehaald met de benodigde text. En die word vervolgens in de textbox geplaatst. Ik heb het ook zonder die code ge probeert en dan met een standaard variabele en dan nog kan ik niks toevoegen en niks weghalen
Als je de waarde insteld in je 'changed'-event is het logisch dat het lijkt alsof het niet kan worden aangepast. Immers als je wat wilt aanpassen wordt het event getriggert wat ervoor zorgt dat de initiele waarde weer wordt gezet.

Wat doet deze code dan:
code:
1
<TextBox Height="244" HorizontalAlignment="Left" Margin="1,84,0,0" Name="textBox1" Text="TextBox" VerticalAlignment="Top" Width="223" />

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Als ik die code er in zet dan word het een standaard textbox en voert hij niks uit. Als ik hem ook in de achterliggende code aanpas dan raakt alles messed up (dan spreekt hij te textbox niet meer aan).

Acties:
  • 0 Henk 'm!

  • Razr
  • Registratie: September 2005
  • Niet online
Verwijderd schreef op vrijdag 21 oktober 2011 @ 20:43:
Als ik die code er in zet dan word het een standaard textbox en voert hij niks uit. Als ik hem ook in de achterliggende code aanpas dan raakt alles messed up (dan spreekt hij te textbox niet meer aan).
Uiteraard voert hij dan niks uit, maar hij gedraagt zich dan wel als een tekstveld? Als in; je kan tekst typen en bewerken etc.? Als je de tekst in je veld alleen bij initialisatie wilt vullen, moet je dat niet in je Changed-event doen (wat volgens mij nu gebeurd), maar kun je dat beter doen met een Loaded event o.i.d.

code:
1
<TextBox Height="244" HorizontalAlignment="Left" Margin="1,84,0,0" Name="textBox1" Text="TextBox" VerticalAlignment="Top" Width="223" Loaded="textBox1_TextChanged" />


Of als je het correct wilt doen maak je in je ViewModel een veld aan, die bind je aan het textbox-object en vervolgens zet je de waarde van die property wanneer je het scherm opent of wat dan ook.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
de code [code]<TextBox Height="244" HorizontalAlignment="Left" Margin="1,84,0,0" Name="textBox1" Text="TextBox" VerticalAlignment="Top" Width="223" Loaded="textBox1_TextChanged" />[/code]
geeft tijdens het debuggen de volgende error aan: Failed to assign to property 'System.Windows.FrameworkElement.Loaded'. [Line: 32 Position: 147]

Verder met de eerder gegeven code gedraagde hij zich idd als een textbox.


Gevonden :D Hij werkt nu :) ik had alleen de XAML code veranderd.

[ Voor 8% gewijzigd door Verwijderd op 22-10-2011 00:05 ]


Acties:
  • 0 Henk 'm!

  • jip_86
  • Registratie: Juli 2004
  • Laatst online: 05-10 18:55
Alleen XAML is niet zo boeiend als je in je code behind nog van alles uithaalt. Post daar ook eens wat van.

Verder zijn volgens mij Bindings wel de way to go als je met XAML werkt. Waarom gebruik je dat niet?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
jip_86 schreef op zaterdag 22 oktober 2011 @ 00:06:
Alleen XAML is niet zo boeiend als je in je code behind nog van alles uithaalt. Post daar ook eens wat van.

Verder zijn volgens mij Bindings wel de way to go als je met XAML werkt. Waarom gebruik je dat niet?
Omdat in dit geval het niet zou uitmaken. Er zou dan hetzelfde gebeuren.

Verder zoals je wss al had gelezen is het probleem opgelost. (domme fout van mij, maar daar leer ik weer van ;) )

Thanks voor de hulp!

Acties:
  • 0 Henk 'm!

  • Caelorum
  • Registratie: April 2005
  • Laatst online: 11:19
Verwijderd schreef op zaterdag 22 oktober 2011 @ 00:28:
[...]
Omdat in dit geval het niet zou uitmaken. Er zou dan hetzelfde gebeuren.
[...]
Met het verschil dat het in het geval van Bindings makkelijker is om in de toekomst de view te veranderen. Je hoeft dan bijvoorbeeld in de meeste gevallen niet meer in de C# code te porren ;)

Acties:
  • 0 Henk 'm!

  • Serperior
  • Registratie: Oktober 2011
  • Laatst online: 03-05-2022
heb je enabled aan of uitstaan?
want enabled kan dus uistaan en dus niet bewerkbaar.
Pagina: 1