Hallo Palladin007,
ja, ich bin Anfänger - ich beschäftigte mich erst seit ca. 4 Monaten mit C# und WPF und mir ist klar, dass ich noch viel lernen muss... 😉
@all:
Danke an alle für Ihre hilfreichen Beiträge - mein Problem konnte ich mit eurer Hilfe lösen. 😄
LG,
sacoma
Hallo Palladin007,
Habe ich das richtig verstanden? Die ViewModel wird nicht instanziiert?
Aber was bedeutet dann die Zeile:
viewModel.Password = pwBox.Password;
im Code:
<PasswordBox PasswordChanged="PasswordBox_PasswordChanged"/>
private void PasswordBox_PasswordChanged(object sender, RoutedEventArgs e)
{
if (sender is not PasswordBox pwBox)
return;
if (DataContext is not MyViewModel viewModel)
return;
viewModel.Password = pwBox.Password;
}
"viewModel" scheint mir der Objekt-Variablen-Namen zu sein, der z.B. im Konstruktor mit "ViewModel viewModel = new ViewModel();" instanziiert wurde.
Ok, ich bin Anfänger, es kann sein, dass ich die Zeile falsch interpretiert habe.
LG,
sacoma
Hallo Leute,
danke für eure Meingung.
Mir fällt erst jetzt auf, dass ich vergessen hatte zuschreiben, dass in der ViewModel noch ein EventAggregator (vom Nuget-Paket "Prism") implementiert ist - das heißt, eine Instanzierung der ViewModel ist so nicht möglich...
LG,
sacoma
Hallo Leute,
nochmals danke für eure Beiträge.
Ich habe einen Freunde, der sich hobbymäßig auch mit C# und WPF beschäftigt. Er hatte mir folgendes vorgeschlagen:
Die in den WPF-PasswordBoxen eingegebene Passwörter im Code-Behind auslesen, auf Übereinstimmung prüfen und wenn alles richtig ist, Passwort verschlüsseln. Danach das verschlüsselte Passwort in einen unsichtbaren TextBlock auf der WPF-View übergeben.
Der unsichtbare TextBlock ist an einer Property aus dem ViewModel gebindet (Mode: TwoWay), so kann der verschlüsselte Passwort-String der ViewModel übergeben werden.
Was haltet ihr von dieser Lösung?
Bin auf eure Meinungen gespannt. 😉
LG,
sacoma
Hallo Leute,
danke für eure Beiträge - ich werde mir alles in ruhig ansehen und ausprobieren.
LG,
sacoma 😉
Hallo,
ich habe Palladin007's Idee umgesetzt.
Hier das Ergebnis:
Bei Textboxen funktioniert es gut.
Aber bei PasswordBox funktioniert es nicht; der Grund: man kann die PasswordBox nicht auf eine Property in der ViewModel binden.
LG,
sacoma 😉
Hallo Palladin007,
man kann das alles nicht allein im WPF codieren, sondern braucht diese Properties im ViewModel...
OK, ich werde es mal umsetzen.
Danke für deine Antwort. 😉
LG,
sacoma
Hallo Leute,
ich will ein User-Login mit Registrierungs-Dialog programmieren.
Im Registrierungs-Dialog gibt es eine Textbox für den Usernamen und zwei Passwort-Textboxen für die Eingabe eines Passworts und für die Wiederholung des Passwortes.
Die Passwortbox für die Passwort-Wiederholung soll roten Hintergrund bekommmen, wenn das Passwort nicht mit dem aus dem 1. Passwortbox übereinstimmt und einen grünen Hintergrund, wenn wenn die Passwörter übereinstimmen.
Ich habe eine Lösung mittels Code-Behind-Programmierung gefunden, wollte aber wissen, ob das auch mit puren WPF-Xaml möglich ist.
Ich habe folgendes in der Xaml-Datei codiert:
<StackPanel Width="200">
<Label Content="Passwort eingeben: " Margin="5,0"/>
<PasswordBox x:Name="pbxPwEingabe" Margin="5,0"/>
<Label Content="Passwort wiederholen: " Margin="5,0"/>
<PasswordBox x:Name="pbxPwWiederholen" Margin="5,0">
<PasswordBox.Style>
<Style TargetType="PasswordBox">
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=pbxPwWiederholen, Path=Text}"
Value="{Binding ElementName=pbxPwEingabe, Path=Text}">
<Setter Property="Background" Value="LightGreen"/>
</DataTrigger>
</Style.Triggers>
</Style>
</PasswordBox.Style>
</PasswordBox>
<Button x:Name="btnRegistrieren" Content="Registrieren" Margin="5"/>
</StackPanel>
Mein Problem: im Tag des "DataTrigger" wird das Attribut "Value" unterkringelt und es wird folgender Fehler in der Error-List angezeigt:
Error XDG0010 "Binding" ist keine gültige Auslöserbedingung... - ich habe die Fehlermeldung gegoogelt, aber nichts gefunden.
Ich weiß nur, dass ich in "Value" etwas anderes einfügen muss. Die Frage ist was?
Kann mir jemand helfen? - Danke für die Hilfe im Voraus. 😉
LG,
sacoma
Hallo Leute,
ich möchte mich nochmal für eure Hilfe bedanken.
Ich habe es geschafft die View wie gewünscht zu erstellen - ohne Code-Behind.
Danke an alle, die geholfen haben. 😃
LG,
sacoam 😉
Hallo Alf Ator,
danke auch für deinen Beitrag - ich werde mich auch mit deinem Ansatz befassen - teilweise habe ich schon eine Lösung für mein Problem erstellt - nur mit der Darstellung der Lagerplätze am richtigen Platz auf GUI hagte es noch, aber mit deiner Lösung, weiß ich wie ich auch das hinkriegen kann.
Vielen Dank nochmal für deine Mühe. 😄
LG,
sacoma 😉