Frage

Ich baue meine eigene Implementierung eines Assistenten-Stil-Schnittstelle und kämpfen, um es zu bekommen korrekt arbeitet, zusammen mit allen anderen Stil der Assistenten-Schnittstelle Ich erwarte, dass das gleiche Problem zu begegnen. Siehe Bild:

Im Grunde bin ich mit einem Gitter und habe meine Navigationselemente darunter. Das Gitter wird die Bildschirme wechseln, etwa so:

private void btnNext_Click(object sender, RoutedEventArgs e)
{
    Wizard.Progress++;
    SwitchUserControl();
}

private void SwitchUserControl()
{
    switch (Wizard.Progress)
    {
        case 0:
            contentGrid.Children.RemoveRange(0, contentGrid.Children.Count);
            contentGrid.Children.Add(screen0);
            break;
        case 1:
            contentGrid.Children.RemoveRange(0, contentGrid.Children.Count);
            contentGrid.Children.Add(screen1);
            break;
        case 2:
            contentGrid.Children.RemoveRange(0, contentGrid.Children.Count);
            contentGrid.Children.Add(screen2);
            break;
        case 3:
            contentGrid.Children.RemoveRange(0, contentGrid.Children.Count);
            contentGrid.Children.Add(screen3);
            break;
    }
}

Dies ist, wo ich auf das Problem bekommen :

Arbeiten, die feine, um zwischen den Kontrollen. Das Problem ist, sagen sie zum Beispiel auf den Bildschirm sagen ein Datum eingeben. Und ich habe einigen Code Datenvalidierung auf diesem Textfeld zu laufen. Wenn die Validierung der Textbox nicht geht Grenze rot und eine Meldung erscheint. Aber jetzt weiß ich nicht, wo dieser Code gehen. Früher habe ich es auf dem Usercontrol screenX auf den Button, aber jetzt meine Navigationstasten sind unten, und dann, wenn ich es auf dem Code unter diesen nav Tasten setzen will, kann ich nicht das Textfeld zugreifen!

Ich sehe auch dieses Problem in den meisten Implementierungen von Assistenten-Stil-Schnittstelle auftreten. Die meisten Beispiele sehe ich verwenden Kontrollkästchen oder Optionsfelder, so dass keine Fehler bei der Dateneingabe ist. Aber das ist nicht sehr hilfreich für dieses Beispiel.

Also, was sind meine Optionen zu erreichen, was ich hier will ???

War es hilfreich?

Lösung

Die Antwort auf Ihre Frage könnte sein, mit einem kanonischen Ansatz zu beginnen. WPF unterstützt einen schönen Navigation API , dass Sie für den Aufbau Assistenten verwenden können. Hier ist ein Beispiel davon bei der Arbeit.

Im Hinblick auf die Validierung, in der Navigation API Sie eine Page-Klasse an die Stelle der Steuerelemente (von Ihrem Beispiel) verwenden können. Ihre Page-Klasse kann eine Eigenschaft haben, der angibt, ob es gültig oder ungültig ist und Sie die Logik des Feldes durch die Feldeingabevalidierung spezifisch auf die Seite zu halten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top