C# Wpf --> usercontrol zugreifen

06/04/2014 20:43 ephaltes#1
Hallo

Wollte mir ein zeitrechner bauen wo man Zeiten addieren und subtrahier kann, vorgegeben ist es mit usercontrol und wpf zu machen.
Das Usercontrol besteht aus 3 textboxen ( Std min sec)
Die hab ich halt 3 mal auf die wpf Mainwindow gezogen

Beim Code vom usercontrol public int für die Std min und sec erstellt
Mein Problem ist wie kann ich den usercontrol sagen das er dann die
Wenn der button berechnen vom Mainwindow gedruckt wird das er aus den public Variablen für die ergebnise in die textboxen schreibt?

Hab versucht beim usercontrol im xaml (Grid) buttonbase.click = "rechnen" zu schreiben und dann im Code das der button rechnen die ergebnise in die textboxen schreibt
Sollte ja theoretisch funktionieren sprich , wenn irgentwo ein button gedruckt wird dann starten er den Event rechnen
Leider funktioniert das nicht da das usercontrol anscheinend einen button click am Grid vom Mainwindow nicht erkennt.

Hab mir dann überlegt ( noch nicht gemacht, weil nicht zuhause) ob ich einen button public machen kann, so das er von Mainwindow und usercontrol benutzt werden kann und in diesem dann reinprogrammieren das er was in die textboxen schreibt
Problem wäre halt das das Mainwindow dann meckern sollte da er die textboxen ja nicht kennt...
06/04/2014 22:03 Guiso90#2
versuch es mal mit = rechnen ö.ö so weit ich weiß aber Entschuldigung wenn es Falsch ist ist das in "" nach einen = eig. immer text also mach die " mal weg
06/04/2014 22:38 Mostey#3
WPF ist eigentlich nicht dazu gedacht, alles manuell anzusteuern und die GUI mit der Logik verschmelzen zu lassen. Vielleicht solltest du mal darüber nachdenken, dich etwas davon abzuwenden und grundlegende Dinge wie Bindings, Commands und XAML zu lernen.

Grundsätzlich kann man aber alternativ auch auf einen Button einen Delegate setzen der bei einem Klick aufgerufen wird. Dort müsstest du in deiner Situation im Markup den Elementen einen Namen geben (über x:Name) und kannst anschließend im Code dahinter über den Namen darauf zugreifen.

Wenn du den Handler nicht im Markup festlegen willst, kannst du's natürlich noch ganz klassisch machen:

Code:
btn.Click += btn1_Click;

private void btn1_Click(object sender, RoutedEventArgs e)
{
    // do something
}

Wie bereits gesagt ist das nicht optimal, da deine GUI etwas über die Logik weiß und umgekehrt.


Quote:
Originally Posted by Guiso90 View Post
versuch es mal mit = rechnen ö.ö so weit ich weiß aber Entschuldigung wenn es Falsch ist ist das in "" nach einen = eig. immer text also mach die " mal weg
Was?
06/04/2014 22:44 Guiso90#4
Naja kenne die Sprache nicht und bei c++ und bei VB is es eigentlich so das
z.b. Textbox1.Text = "Hay" <- Text = Hay
oder Textbox1.Text = Hay <- Funktion~
06/04/2014 23:14 Mostey#5
Quote:
Originally Posted by Guiso90 View Post
Naja kenne die Sprache nicht und bei c++ und bei VB is es eigentlich so das
z.b. Textbox1.Text = "Hay" <- Text = Hay
oder Textbox1.Text = Hay <- Funktion~
Du kannst einem string keine Funktion zuweisen. Das hat nicht mehr viel mit der Sprache zutun sondern das ist das Framework. In diesem Fall WPF, du sprichst (wenn überhaupt) von WinForms.