Entwickler-Ecke
WPF / Silverlight - [3.5] WPF Window übergeben
Darth-Maddin - Fr 18.09.09 23:36
Titel: [3.5] WPF Window übergeben
Ziel: Aus einer Methode(andere Klasse und ggf. anderer Namespace) heraus, dass Window(WPF) bearbeiten.
Sprich nicht in dem Code behind-Window eine Textbox füllen sondern im Code-behind MAIN o. else die Textbox bzw. das Window ansteuern und füllen.
ein bisschen gequelltes:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56:
| using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes;
namespace BLCMDB_FINAL { public partial class Haupt_Window : Window { public Haupt_Window() { InitializeComponent(); }
private void winver_Click(object sender, RoutedEventArgs e) { string sys_root = Environment.GetEnvironmentVariable("systemroot"); Process.Start(@"winver" ); }
private void sysdm_Click(object sender, RoutedEventArgs e) { string sys_root = Environment.GetEnvironmentVariable("systemroot"); Process.Start(sys_root + @"\system32\sysdm.cpl"); }
private void button_START_Click(object sender, RoutedEventArgs e) { Hauptprogramm.Programm(); }
private void button_CLS_Click(object sender, RoutedEventArgs e) { textBox1.Clear(); textBox1.Text = "eine XML-Datensammlung von einer länge die nix im Code-behind Window verloren hat" } } } |
und der Kram soll in form von methoden nach da ->
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52:
| using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes;
using System.Runtime.InteropServices; using ClassLibrary; using Config_IO;
namespace BLCMDB_FINAL { public partial class App : Application { }
public class Hauptprogramm { private static Array str_ARRAY; public static void Programm() { c_Variable.set_str_XML_Path(@"BLCMDB.xml"); IO_XML handle_XML = new IO_XML(); Window_1.textBox_3.Text = " ZIEL ";
} } } |
und das kostet mich jetzt schon 2 Mäuse und ein Termin beim Tierschutzverband :)
Danke für eure hilfe im Voraus *wahrscheinlich hab ich eh was grundlegendes an WPF nicht ganz verstanden
MfG
der Azubi vor dem Herrn -.-'
Kha - Sa 19.09.09 00:29
:welcome:
Erst einmal: In die App.cs würde ich das nicht stecken, nimm lieber eine ganz neue cs-Datei.
Es geht anscheinend ums Auslagern von Code, aber das bedeutet eigentlich, GUI-unabhängige Bestandteile zu extrahieren. Wenn Code das Window manipulieren will, gehört er auch in die Window-Klasse, Punkt ;) . Du darfst nicht das Window-Objekt selbst übergeben, sondern höchstens die Werte einzelner Properties, und den Rückgabewert dann wieder deinen Controls zuweisen.
Der XML-Code gehört übrigens gar nicht in den Code, sondern - in eine separate XML-Datei ;) .
Und bittebitte keine Unterstriche in C#. Falls die natürlich von der Firma stammen... äh, kannst du noch wechseln :mrgreen: ?
Darth-Maddin - Sa 19.09.09 01:55
Wenn ich, dass halbwegs verstanden habe heißt das also für jedes Control Object ein get/set zu basteln :bawling: und alles andere auslagern.
Jetzt mal ne ganz blöde Frage warum keine Unterstriche in c# :?: :oops:
Was den XML Tip angeht, das hab ich schon im Blick ich mach ein Profikurs für XML Einsteiger *gg*
danke für deine Hilfe :) *vorallem um die uhrzeit*
Christoph1972 - Sa 19.09.09 09:09
Darth-Maddin hat folgendes geschrieben : |
Jetzt mal ne ganz blöde Frage warum keine Unterstriche in c# :?: :oops:
|
OT:
Na ja, ich würde das nicht ganz so eng sehen. Selbst die Trainer von MS machen das z.T. ist mir aktuell in einem neuen Webcast von Golo Roden aufgefallen.
Kha - Sa 19.09.09 12:01
Darth-Maddin hat folgendes geschrieben : |
Wenn ich, dass halbwegs verstanden habe heißt das also für jedes Control Object ein get/set zu basteln :bawling: |
Muss nicht sein. Dafür solltest du am besten mal ein reales Beispiel zeigen, also etwas komplizierter als "
Window_1.textBox_3.Text = " ZIEL "; auslagern" ;) .
Darth-Maddin hat folgendes geschrieben : |
Jetzt mal ne ganz blöde Frage warum keine Unterstriche in c# :?: :oops: |
Die waren schon immer ästhetisch bäh :P , aber bei .NET sind sie sogar hochoffiziell bäh:
Darth-Maddin hat folgendes geschrieben : |
danke für deine Hilfe :) *vorallem um die uhrzeit* |
^^
Christoph1972 hat folgendes geschrieben : |
Na ja, ich würde das nicht ganz so eng sehen. Selbst die Trainer von MS machen das z.T. ist mir aktuell in einem neuen Webcast von Golo Roden aufgefallen. |
Einen Kommentar zu Golo Roden verkneife ich mir mal... Ganz allgemein würde ich Autorität nur überm großen See suchen, mit inländischen Entwicklern ist das so ne Sache.
Darth-Maddin - Mo 21.09.09 20:12
So
alles hübsch getrennt, aber wie kann ich jetzt was in das textfeld schreiben=?
Ich mein jetzt nicht einfach so txtbox.appendtext oder so sonder aus der App.xaml.cs in das Window.xaml.cs
wenn ihr versteht was ich mein... aus einer andern Klasse in das Aktive Window.
das kann ja meinetwegen auch über das Window selbst in die Box gepack werden aber wie sag ich dem Window das es das tun soll Oo?
Mfg
Maddin
Ps soory das ich mich so doof anstelle
Kha - Mo 21.09.09 21:31
Darth-Maddin hat folgendes geschrieben : |
Ich mein jetzt nicht einfach so txtbox.appendtext oder so sonder aus der App.xaml.cs in das Window.xaml.cs
wenn ihr versteht was ich mein... |
Nein ;) . Zum TextBox-Befüllen reicht der Rückgabewert, für Komplizierteres müsstest du mal ein Beispiel bringen.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!