我有一个网格中有3个文本框的窗口 - 这是我的视图 - 我有“保存”按钮,使用文本框中的数据将新用户添加到我的用户列表中。 我想在我的viewmodel类上使用relay命令来执行此操作,但我对如何进行绑定非常困惑。我希望它足够清楚。任何想法或示例都会有所帮助。 提前谢谢。
答案 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的几个选项:
我更喜欢第一个选项,因为您可以在运行时根据需要组合视图和视图模型。
希望这是一个有用的答案。