Привязка команды сохранения WPF - PullRequest
1 голос
/ 04 августа 2010

У меня есть окно с 3 текстовыми полями в сетке - это мой вид - и у меня есть кнопка Сохранить, чтобы добавить нового пользователя в мой список пользователей с данными из текстовых полей.Я хочу использовать команду relay для этого в моем классе viewmodel, но я совершенно не понимаю, как делать привязки.Надеюсь, это достаточно ясно.Любые идеи или примеры будут полезны.заранее спасибо.

Ответы [ 3 ]

2 голосов
/ 04 августа 2010

У вас должна быть ViewModel что-то вроде следующего:

class UserViewModel
{
    public String Name { get; set; }
    public String Password { get; set; }
    public String Email { get; set; }

    public RelayCommand AddUserCommand { get; set; }

    public UserViewModel()
    {
        AddUserCommand = new RelayCommand(AddUser);
    }

    void AddUser(object parameter)
    { 
        // Code to add user here.
    }
}

И вы можете использовать его следующим образом:

    <StackPanel>
        <TextBox Text="{Binding Name}"></TextBox>
        <TextBox Text="{Binding Password}"></TextBox>
        <TextBox Text="{Binding Email}"></TextBox>
        <Button Command="{Binding AddUserCommand}">Add</Button>
    </StackPanel>

Чтобы сделать это, поместите следующий код в свой UserControl/ Control / Конструктор окна:

DataContext = new UserViewModel();
0 голосов
/ 04 августа 2010

Вы создали экземпляр ViewModel и поместили этот экземпляр в DataContext вашего представления или панели стека?

пример:

UserViewModel viewModel = new UserViewModel();
UserWindow view = new UserWindow();
view.DataContext = viewModel;
view.Show();

Существует несколько вариантов соединения View и Viewmodel:

  • Создайте View и ViewModel и установите ViewModel в свойство DataContext (код выше)
  • Создайте ViewModel в конструкторе View и заполните им свойство DataContext
  • Создайте в своем представлении Resource тип вашей ViewModel и заполните свойство DataContext в XAML

Я предпочитаю первый вариант, потому что вы можете комбинировать View и Viewmodels так, как вам нравится во время выполнения.

Надеюсь, это полезный ответ.

0 голосов
/ 04 августа 2010

Полагаю, вы читали статью Джоша Смита: Приложения WPF с шаблоном проектирования Model-View-ViewModel . Если вы этого не сделали, то сначала прочтите его, а затем загрузите код, потому что пример очень похож на вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...