WPF aufrufen einer Kontrolle
Wie kann ich rufen Sie ein Steuerelement mit Parametern? Ich habe gegoogelt dazu, aber nirgends zu finden!
Dies ist die Fehlermeldung die ich bekomme:
Zusätzliche Informationen: Parameter count mismatch.
Ist das und das passiert, wenn ich eine einfache Prüfung, ob die text-Eigenschaft eines textbox-Steuerelement leer ist oder nicht. Dies funktioniert in WinForms:
if (this.textboxlink.Text == string.Empty)
SleepThreadThatIsntNavigating(5000);
Springt es aus, wenn man die Linie an den catch-block und zeigt mir die Nachricht.
Dies ist, wie ich versuchen, das Steuerelement aufrufen:
//the delegate:
private delegate void TBXTextChanger(string text);
private void WriteToTextBox(string text)
{
if (this.textboxlink.Dispatcher.CheckAccess())
{
this.textboxlink.Text = text;
}
else
{
this.textboxlink.Dispatcher.Invoke(
System.Windows.Threading.DispatcherPriority.Normal,
new TBXTextChanger(this.WriteToTextBox));
}
}
Was mache ich falsch? Und seit Wann muss ich zum aufrufen einer Kontrolle, wenn ich nur wollen, um die Inhalte Lesen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie anrufen, Aufrufen, sind Sie nicht die Angabe Ihrer Argumentation (
text
). Wenn der Dispatcher versucht zu laufen, Ihre Methode, es muss nicht ein parameter zu liefern, und Sie bekommen eine Ausnahme.Versuchen:
Wenn Sie möchten, Lesen Sie den Wert aus einem Textfeld, einer option ist die Verwendung einer lambda:
Reed ist richtig, aber der Grund, warum Sie brauchen, um dies zu tun, ist, dass GUI-Elemente sind nicht thread-sicher, so dass alle GUI-Operationen durchgeführt werden müssen, um auf der GUI-thread, um sicherzustellen, dass der Inhalt korrekt gelesen. Weniger offensichtlich, warum dies notwendig ist, mit einer read-operation wie diese, aber es ist sehr notwendig, mit schreibt und so .NET framework erfordert nur alle Zugriff auf die GUI im GUI-thread.