Wenn ich Passwort Default mit Anmeldung Geben Sie (edit Login + Tab, bearbeiten Passwort + Geben Sie), die X.Password
Eigenschaft ist immer noch nicht geändert. Wie kann ich ein Passwort festlegen, wenn ich DefaultButton verwende?MVVM Standardschaltfläche schneller als TextBox begehen Text Ansichtsmodell
member X.Password
with get() = password
and set value =
password <- value
X.OnPropertyChanged "Password"
member X.LoginCommand =
new RelayCommand ((fun canExecute -> true), (fun action ->
X.SelectedAccount <-
match
X.Accounts
|> Seq.filter (fun acc ->
acc.Name = login &&
acc.Password = password) with
| s when Seq.isEmpty s ->
X.ConvertButtonEnabled <- false
ignore <| MessageBox.Show(sprintf
"User %s doesn't exist or password incorrect password" X.Login)
{Name=""; Role=""; Password=""; ExpenseLineItems = []}
| s ->
X.ConvertButtonEnabled <- true
X.LoginExpander <- false
Seq.head s
X.Login <- ""
X.Password <- ""))
XAML:
<Button Content="Login" Command="{Binding LoginCommand}" Height="23" HorizontalAlignment="Left" Margin="79,71,0,0" Name="LoginButton" VerticalAlignment="Top" Width="75" IsDefault="True" />
<TextBox Text="{Binding Login}" Height="28" HorizontalAlignment="Left" Margin="61,6,0,0" Name="Login" VerticalAlignment="Top" Width="142" />
<TextBox Text="{Binding Password}" Height="26" HorizontalAlignment="Left" Margin="61,34,0,0" Name="Password" VerticalAlignment="Top" Width="142" />
VMBase
type ViewModelBase() =
let propertyChangedEvent = new DelegateEvent<PropertyChangedEventHandler>()
interface INotifyPropertyChanged with
[<CLIEvent>]
member x.PropertyChanged = propertyChangedEvent.Publish
member x.OnPropertyChanged propertyName =
propertyChangedEvent.Trigger([| x; new PropertyChangedEventArgs(propertyName) |])
Relay Befehl
type RelayCommand (canExecute:(obj -> bool), action:(obj -> unit)) =
let event = new DelegateEvent<EventHandler>()
interface ICommand with
[<CLIEvent>]
member x.CanExecuteChanged = event.Publish
member x.CanExecute arg = canExecute(arg)
member x.Execute arg = action(arg)
Und ich brauche nicht "set value = Passwort <- Wert X.OnPropertyChanged‚Passwort‘ " dann ? also brauche ich etwas Zeit, um es zu versuchen, danke – Cynede
Nein, du solltest das nicht tun müssen. –