绑定保存命令WPF

时间:2010-08-04 08:35:27

标签: wpf mvvm command

我有一个网格中有3个文本框的窗口 - 这是我的视图 - 我有“保存”按钮,使用文本框中的数据将新用户添加到我的用户列表中。 我想在我的viewmodel类上使用relay命令来执行此操作,但我对如何进行绑定非常困惑。我希望它足够清楚。任何想法或示例都会有所帮助。 提前谢谢。

3 个答案:

答案 0 :(得分:2)

您应该拥有类似以下内容的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 / Window的构造函数中:

DataContext = new UserViewModel();

答案 1 :(得分:0)

我认为你读过Josh Smith的文章:WPF Apps With The Model-View-ViewModel Design Pattern。如果没有,请先阅读,然后下载代码,因为示例与您的问题非常相似。

答案 2 :(得分:0)

您是否创建了ViewModel的实例并将此实例放在视图或堆栈面板的DataContext中?

示例:

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

有关连接View和Viewmodel的几个选项:

  • 创建View和ViewModel并将ViewModel设置为DataContext属性(上面的代码)
  • 在View的构造函数中创建ViewModel并用它填充DataContext属性
  • 在您的ViewModel类型视图中创建资源并在XAML中填充DataContext属性

我更喜欢第一个选项,因为您可以在运行时根据需要组合视图和视图模型。

希望这是一个有用的答案。