我有一个窗口,其中有3个文本框在网格中 - 这是我的视图 - 我有保存按钮来添加一个新用户到我的用户列表与文本框中的数据。 我想在我的viewmodel类上使用中继命令来做到这一点,但我对如何制作绑定感到困惑。我希望这很清楚。任何想法或例子都会有所帮助。 在此先感谢。绑定一个保存命令WPF
回答
你应该有一个视图模型类似如下:
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>
为了使这项工作,把按照你的用户控件代码/控制/窗户的构造函数:
DataContext = new UserViewModel();
我推测你读了Josh Smith的文章: WPF Apps With The Model-View-ViewModel Design Pattern。如果你没有,那么先阅读它,然后下载代码,因为示例与你的问题非常相似。
是的,我读了它,它让我感到困惑,比帮助我... – cemregoksu 2010-08-04 10:22:15
我明白你:)。到过那里。三读和学习代码后,我得到了部分内容。需要时间来捕捉正在发生的事情。至少我需要。 – zendar 2010-08-04 10:57:39
您是否创建了ViewModel的实例并将此实例放入您的视图或stackpanel的DataContext中?
例如:
UserViewModel viewModel = new UserViewModel(); UserWindow view = new UserWindow(); view.DataContext = viewModel; view.Show();
上有视图和视图模型耦合的几个选项:
- 创建视图和视图模型和视图模型设置为DataContext属性(代码以上)
- 在视图的构造函数中创建ViewModel并使用它填充DataContext属性
- 在typ视图中创建资源然后在XAML中填充DataContext属性
我更喜欢第一个选项,因为您可以在运行时随心所欲地组合视图和视图模型。
希望这是一个有用的答案。
- 1. WPF命令绑定
- 2. WPF绑定命令
- 3. 在WPF中绑定验证和保存命令
- 4. WPF图像命令绑定
- 5. WPF:绑定和命令
- 6. MVVM WPF - Viewmodel命令绑定
- 7. WPF命令绑定破坏
- 8. 命令绑定与WPF
- 9. WPF RibbonApplicationMenuItem命令绑定
- 10. 在一个按钮中绑定两个命令WPF/MVVM
- 11. wpf中的自定义命令绑定
- 12. WPF MVVM - 命令绑定在一个ItemsControl内
- 13. 如何将命令绑定到一个菜单项在C#WPF
- 14. 如何将一个命令绑定到MenuItem(WPF)?
- 15. 在DataTemplate中的WPF命令绑定
- 16. WPF:将ContextMenu绑定到MVVM命令
- 17. Wpf属性绑定与命令
- 18. 将ViewModel命令绑定到WPF DataGrid
- 19. WPF:绑定到来自ControlTemplate的命令
- 20. WPF MVVM:绑定命令到事件
- 21. WPF命令绑定到祖先属性
- 22. 将命令绑定到WPF中的ComboBoxItem
- 23. WPF中的事件和命令绑定
- 24. WPF usercontrol命令绑定到窗口viewmodel
- 25. 命令绑定不工作WPF
- 26. WPF命令绑定:CanExecute参数
- 27. WPF CustomControl命令和数据绑定
- 28. WPF命令绑定到MVVM的DataItemTemplate
- 29. Datagrid与棱镜绑定命令WPF
- 30. C#/ WPF:键绑定不触发命令
这些代码是否足以提供视图和视图模型之间的关系?它仍然不起作用... – cemregoksu 2010-08-04 10:10:08
您必须创建ViewModel的对象并将其分配给窗口的DataContext – Zied 2010-08-04 11:37:43
感谢Zied为此添加了这一点。我已经更新了代码。 – decyclone 2010-08-04 14:18:13