Entwickler-Ecke

WPF / Silverlight - Ein XAML Fenster, Zugriff mehrerer Klassen auf Controls?


csharpuser1 - Mi 30.11.16 15:40
Titel: Ein XAML Fenster, Zugriff mehrerer Klassen auf Controls?
Guten Tag,

ich habe mehrere XAML Dateien und in jedem ist mal eine Listbox mit Buttons, mal einfach nur RadioButtons oder sonst was. Mit jedem weiter/ Save Button instanziere ich das nächste fenster, lösche es und öffne das nächste. Nun möchte ich aber ein großes Fenster haben anstatt immer ein kleines und an das nächste weitergeben mit Buttonklikc. Ist das möglich?

Grüße


csharpuser1 - Mi 30.11.16 15:44

Ich glaube es ist doch so einfahc, dass ich eine XAML Datei mache und alle Controls dort einfüge. Anschleißend einfach MainWindow window = new MainWindow() und dann kann ich über window.button drauf zugreifen..

Wenn es so simpel ist entschuldigt die Frage.

Aber findet er im XAML Code wenn ich z.B. einen Button Handler drin habe Button_clicked durchsucht er dan alle dateien oder nur die xaml.cs? :o

Okay funktioniert nicht wirklich gut, so wie ich es versuche öffnet sich immer ein neues Fesnter, es muss doch übersichtlich funktionieren das man eine XAML datei hat und z.B. 10 Klassen auf die Controls zugreifen können.




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:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
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.Shapes;

namespace Test_Datei_auswählen
{
    /// <summary>
    /// Interaktionslogik für Window1.xaml
    /// </summary>
    public partial class Window1 : Window
    {
        

        public Window1()
        {
            InitializeComponent();
        }

        private void btn1_Click(object sender, RoutedEventArgs e)
        {
            WClass1 fdsa = new WClass1();
            fdsa.btn1_Click();
        }
    }
}



C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Test_Datei_auswählen
{
    class WClass1
    {
        Window1 window = new Window1();
        
        public WClass1()
        {   
        }
         public void btn1_Click()
         {
             window.txt1.Text = "fsdja";
             window.Show();
         }
    }
}


was ich noch probiert habe ist partial class WClass1:Window1 aber das funktioniert auch nicht

Oder kann ich ein neues XAML machen in dem ich alle meine kleineren XAML's einfügen kann? Dann müsste bei den einzelnen Fenstern aber oben rechts das verkleinern und schließen weg :/


jfheins - Mi 30.11.16 16:41

Du kannst eine Page [https://msdn.microsoft.com/en-us/library/system.windows.controls.page(v=vs.110).aspx] benutzen.

Auf deinem Hauptfenster legt du einen Frame an. Je nach Useraktion kannst du dann eine andere Page darin anzeigen: http://paulstovell.com/blog/wpf-navigation

Damit kannst du wunderbar eine Art Wizard aufbauen mit Vor- und Zurück-Buttons und dazwischen Navigieren.


csharpuser1 - Mi 30.11.16 17:34

Ich werde es mir so bald wie möglich anschauen , danke!