Permalänk
Medlem

Hängagubbe, C# + XAML

Hej!
Jag håller på att försöka göra nån typ av hängagubbe. Jag har 2 olika XAML filer. Den första som visas är där man ska skriva in ordet man ska gissa och klicka på en knapp och skickas vidare till min andra XAML layout. Där finns det en textbox och en knapp. När man trycker på knappen så ska det som står i textboxen (gissningen) jämföras och allt som behövs. Har inte kommit så långt än.

Mitt problem uppstår när jag flyttar mig över mina XAML filer eftersom att 2 olika .cs filer skapas. I den första(mainwindow.cs) där man matar in ett ord gör jag om den till en char Array för att sedan jämföra med vad man har gissat. Hur ska jag göra för att få med mig denna char array till mitt andra .cs dokument?

Första .cs dokumentet

public partial class MainWindow : Window { public char[] word; public MainWindow() { InitializeComponent(); } private void startButton_Click_1(object sender, RoutedEventArgs e) { string text = hangmanWord.Text.ToUpper(); if (text.Contains(' ') || text.Length > 8 || text.Length < 1) { MessageBox.Show("Du har matat in Otillåten text!"); } else { word = text.ToCharArray(); Page1 pg1 = new Page1(); this.Content = pg1.Content; } } } }

Mitt andra .cs dokument

public partial class Page1 : Page { public Page1() { InitializeComponent(); } private void GuessButton_Click_1(object sender, RoutedEventArgs e) { } } }

Dold text

Tack på förhand
Dalgren

Visa signatur

Crosshair IV | 1055T @ 3.2 GHz | 4 GB Corsair dominator | Corsair H50 | Fractal Design R3 | 2x PowerColor 6950 2GB | Corsair HX 750W

Permalänk
Medlem

Jag har nu ingen kunskap om XAML, men går det kanske inte göra en klass som sköter allt mellan XAML dokumenten. (Om det nu går) Så när du skickar över data så sköter klassen det åt dig.

Permalänk
Medlem

Ändra Page1.cs till att ta emot en char-array i konstruktorn. Lägg sedan till ett fält i Page1 för att spara värdet.

public partial class Page1 : Page { // Lägg till för att spara värdet private char[] wordToGuess; // Lägg till så att konstruktorn tar emot char-array public Page1(char[] word) { // Sätt värdet wordToGuess = word; InitializeComponent(); } private void GuessButton_Click_1(object sender, RoutedEventArgs e) { // Nu kan du använda wordToGuess för att jämföra med här } }

Ändra sedan ditt anrop till Page1 (se kommentaren)

private void button1_Click(object sender, RoutedEventArgs e) { string text = hangmanWord.Text.ToUpper(); if (text.Contains(' ') || text.Length > 8 || text.Length < 1) { MessageBox.Show("Du har matat in Otillåten text!"); } else { word = text.ToCharArray(); // skicka med ordet i konstruktorn Page1 pg1 = new Page1(word); this.Content = pg1; } }

Permalänk
Medlem
Skrivet av MrMygel:

Ändra Page1.cs till att ta emot en char-array i konstruktorn. Lägg sedan till ett fält i Page1 för att spara värdet.

public partial class Page1 : Page { // Lägg till för att spara värdet private char[] wordToGuess; // Lägg till så att konstruktorn tar emot char-array public Page1(char[] word) { // Sätt värdet wordToGuess = word; InitializeComponent(); } private void GuessButton_Click_1(object sender, RoutedEventArgs e) { // Nu kan du använda wordToGuess för att jämföra med här } }

Ändra sedan ditt anrop till Page1 (se kommentaren)

private void button1_Click(object sender, RoutedEventArgs e) { string text = hangmanWord.Text.ToUpper(); if (text.Contains(' ') || text.Length > 8 || text.Length < 1) { MessageBox.Show("Du har matat in Otillåten text!"); } else { word = text.ToCharArray(); // skicka med ordet i konstruktorn Page1 pg1 = new Page1(word); this.Content = pg1; } }

Dold text

Tack så mycket! Ska kolla på det här när jag kommer hem men det ser ut som att det funkar.

Visa signatur

Crosshair IV | 1055T @ 3.2 GHz | 4 GB Corsair dominator | Corsair H50 | Fractal Design R3 | 2x PowerColor 6950 2GB | Corsair HX 750W

Permalänk
Medlem

Ska du göra det "rätt" så ska du titta på hur databindning i XAML fungerar.