Здравствуйте! Пишу авторизацию на C# WPF MVVM в БД MySQL, используя EF6. Необходимо написать команду, которая будет выполняться при нажатии на кнопку "авторизоваться", забирая данные из текстовых полей login и password и производить какие-либо дальнейшие действия. Как осуществить эту передачу из вью авторизации и использовать их для команды? Есть подозрение, что нужно написать свойства для логина и пароля, забиндить их в форме авторизации и уже через свойства производить запрос к БД...
Класс RelayCommand
public class RelayCommand : ICommand
{
private Action<object> execute;
private Func<object, bool> canExecute;
public event EventHandler CanExecuteChanged
{
add { CommandManager.RequerySuggested += value; }
remove { CommandManager.RequerySuggested -= value; }
}
public RelayCommand(Action<object> execute, Func<object, bool> canExecute = null)
{
this.execute = execute;
this.canExecute = canExecute;
}
public bool CanExecute(object parameter)
{
return canExecute == null || canExecute(parameter);
}
public void Execute(object parameter)
{
execute(parameter);
}
}
Класс AuthViewModel
public class AuthViewModel : INotifyPropertyChanged
{
private object authForm;
public object AuthForm
{
get { return authForm; }
set
{
if (Equals(authForm, value))
return;
authForm = value;
OnPropertyChanged("AuthForm");
}
}
public event PropertyChangedEventHandler PropertyChanged;
public void OnPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
Представление AuthView
<UserControl x:Class="FLibrary.Views.AuthView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:FLibrary.Views"
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<Grid ShowGridLines="True">
<materialDesign:Card materialDesign:ShadowAssist.ShadowDepth="Depth1" VerticalAlignment="Center" Width="300" Height="250">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="0.3*"/>
<RowDefinition Height="1*"/>
<RowDefinition Height="0.5*"/>
</Grid.RowDefinitions>
<Image Grid.Row="0" Source="/Images/4.jpg" Stretch="UniformToFill"/>
<StackPanel Orientation="Vertical" Grid.Row="1">
<StackPanel Orientation="Vertical">
<TextBox x:Name="loginBox" materialDesign:HintAssist.Hint="Login" Width="200" Height="40"/>
</StackPanel>
<StackPanel Orientation="Vertical" >
<PasswordBox x:Name="passwordBox" materialDesign:HintAssist.Hint="Password" Width="200" Height="40"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0 20 0 0">
<CheckBox HorizontalAlignment="Left" Margin="48 0 0 0" Content="Запомнить"/>
<TextBlock Margin="32 2 0 0" HorizontalAlignment="Right">
<Hyperlink Style="{StaticResource MaterialDesignCaptionHyperlink}">Забыли пароль?</Hyperlink>
</TextBlock>
</StackPanel>
</StackPanel>
<Button IsEnabled="{Binding ElementName=loginBox, Path=Text.Length}" Grid.Row="2" Width="200" Height="40" Margin="0 -20 0 0" Content="Авторизоваться"/>
</Grid>
</materialDesign:Card>
<ContentControl Content="{Binding AuthForm}"/>
</Grid>
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Есть простая программка, которая выводи лист ексель файликов, которые загружены в определенную папкуПо щелчку каждый из файликов открывается...
Добрый вечер! Пытаюсь найти информацию по подключению (интернет-эквайринга?) на web-Приложение ASPNET
Всем здравствуйте! Как засекать текущую время и дату при отметке чекбоксомТам данные при нажатии кнопки получается из базы и отображается...