Я новичок в Silverlight и работаю с Simple MVVM для создания обучающего приложения. Простой автор MVVM предоставляет несколько хороших примеров привязки данных списка/подробностей, но я ищу пример экрана для регистрации пользователя. Поскольку это внутреннее приложение, я могу передать идентификатор Windows с веб-сайта хостинга и проверить его на базе пользовательской базы данных. Если идентификатор пользователя не существует, я хотел бы показать регистрацию, где пользователь может ввести свое имя/фамилию и нажать кнопку «зарегистрироваться», чтобы сохранить новую запись пользователя. Похоже на простой образец, но я не смог понять это.Простой MVVM - Ищите пример страницы регистрации пользователя
ответ
Ну, мне удалось совместить несколько разных примеров и придумать пример, который работает. Это часть учебного приложения, которое я создаю. Это позволяет пользователям (в моем ИТ-отделе) предлагать и голосовать за обеденное время. Для этого приложения ужин является пользователем. В приведенном ниже коде будет отображаться экран с идентификатором Windows пользователя (только для чтения) и входы для имени/имени в дополнение к кнопке «register».
XAML (registerdinerview.xaml):
<navigation:Page x:Class="LTDestination.Views.RegisterDinerView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
xmlns:navigation="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation"
xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk"
d:DesignWidth="640"
d:DesignHeight="480"
Title="RegisterDinerView Page"
DataContext="{Binding Source={StaticResource Locator}, Path=RegisterDinerViewModel}"
>
<navigation:Page.Resources>
<Style TargetType="Button">
<Style.Setters>
<Setter Property="Height" Value="23"/>
<Setter Property="Width" Value="60"/>
<Setter Property="Margin" Value="5,0,0,0"/>
</Style.Setters>
</Style>
</navigation:Page.Resources>
<StackPanel x:Name="LayoutRoot">
<StackPanel x:Name="ContentStackPanel">
<TextBlock x:Name="HeaderText" Style="{StaticResource HeaderTextStyle}" Text="New User Registration"/>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<sdk:Label Content="User Id:" Grid.Row="0" />
<TextBlock Grid.Row="0" Grid.Column="1" Height="30" Text="{Binding Path=Model.UserId}" />
<sdk:Label Content="First Name:" Grid.Row="1" />
<TextBox Grid.Row="1" Grid.Column="1" Height="30" Text="{Binding Path=Model.FirstName, Mode=TwoWay}" />
<sdk:Label Content="Last Name:" Grid.Row="2" />
<TextBox Grid.Row="2" Grid.Column="1" Height="30" Text="{Binding Path=Model.LastName, Mode=TwoWay}" />
<Button x:Name="RegisterButton" Content="Register" Click="registerButton_Click"
Grid.Row="3" Grid.Column="1" Height="23" Width="75" HorizontalAlignment="Left" Margin="5,0,0,0"/>
</Grid>
</StackPanel>
</StackPanel>
View Code (за registerdinerview.xaml.cs):
namespace LTDestination.Views
{
public partial class RegisterDinerView : Page
{
RegisterDinerViewModel _ViewModel;
public RegisterDinerView()
{
InitializeComponent();
_ViewModel = (RegisterDinerViewModel)DataContext;
_ViewModel.NewDiner();
}
private void registerButton_Click(object sender, RoutedEventArgs e)
{
_ViewModel.SaveChanges();
}
// Executes when the user navigates to this page.
protected override void OnNavigatedTo(NavigationEventArgs e)
{
}
}
}
ViewModel:
using System;
using System.Collections.Generic;
// Пространство имен инструментальных средств с использованием агентства. Услуги; с использованием LTDestination.Web; с использованием SimpleMvvmToolkit;
пространств имен LTDestination.ViewModels { /// /// Этот класс расширяет ViewModelDetailBase, который реализует IEditableDataObject. /// /// Тип редактируемого типа DetailType как аргумент второго типа /// и как параметр для seccond ctor. /// /// /// Использовать фрагмент mvvmprop, чтобы добавить свойства привязки к этой ViewModel. /// /// общественный класс RegisterDinerViewModel: ViewModelDetailBase { #region Инициализация и очистка
private IDinerServiceAgent serviceAgent;
public RegisterDinerViewModel()
{
}
public RegisterDinerViewModel(IDinerServiceAgent serviceAgent)
{
this.serviceAgent = serviceAgent;
}
#endregion
#region Notifications
public event EventHandler<NotificationEventArgs<Exception>> ErrorNotice;
#endregion
#region Properties
private bool _IsBusy;
public bool IsBusy
{
get { return _IsBusy; }
set
{
_IsBusy = value;
NotifyPropertyChanged(m => m.IsBusy);
}
}
#endregion
#region Methods
public void NewDiner()
{
serviceAgent.GetDiners(DinersLoaded);
}
public void SaveChanges()
{
serviceAgent.AddDiner(base.Model);
serviceAgent.SaveChanges(DinerSaved);
IsBusy = true;
}
#endregion
#region Completion Callbacks
private void DinersLoaded(List<Diner> entities, Exception error)
{
// If no error is returned, set the model to entities
if (error == null)
{
base.Model = new Diner { UserId = App.UserId, Active = true };
}
// Otherwise notify view that there's an error
else
{
NotifyError("Unable to retrieve items", error);
}
// We're done
IsBusy = false;
}
private void DinerSaved(Exception error)
{
if (error != null)
{
NotifyError("Unable to save diner", error);
}
else
{
MessageBus.Default.Notify(MessageTokens.Navigation, this, new NotificationEventArgs(PageNames.Home));
}
}
#endregion
#region Helpers
// Helper method to notify View of an error
private void NotifyError(string message, Exception error)
{
// Notify view of an error
Notify(ErrorNotice, new NotificationEventArgs<Exception>(message, error));
}
#endregion
}
}
- 1. Ищите пример MVVM
- 2. Ищете простой MVVM Пример света
- 3. Простой wpf mvvm асинхронный пример
- 4. Создание страницы регистрации пользователя
- 5. Ищите простой пример с паспортом, используя только MEAN
- 6. Ищите пример синатра ajax
- 7. Ищите пример, используя CompletableFuture
- 8. Ищите пример приложения «pylons + sqlalchemy»
- 9. Ищите короткий и простой пример геттеров/сеттеров в C#
- 10. Ищите пример с помощью AudioRecord
- 11. Ищите хороший инструмент регистрации ошибок C#
- 12. Firebase: Просто ищите пользователя
- 13. Создание страницы регистрации пользователя с помощью MongoEngine
- 14. Mediawiki добавить пользователя с пользовательской страницы регистрации
- 15. Создание страницы профиля для пользователя при регистрации
- 16. Пример MVVM DataService
- 17. MVVM Light Threading Пример
- 18. Пример диалога WPF MVVM
- 19. Создание пользовательской страницы профиля пользователя при регистрации пользователя?
- 20. Простой AJAX пример
- 21. Простой пример с Symfony2
- 22. Простой пример AJAX - Silverstripe
- 23. Простой пример Feross - пример кода?
- 24. Простой пример ASP.NET MVC
- 25. Использование Croppie - простой пример
- 26. Простой пример печати
- 27. Ищите пример приложения с ExtJS + Grails
- 28. Ищите приложение для социальной сети Django Пример
- 29. Ищите пример dojo.store с dijit.Tree over REST
- 30. Ищите пример программы, написанной на разных языках