直接从XAML更新数据库

时间:2010-11-18 13:32:10

标签: .net wpf vb.net data-binding xaml

我有一个WPF应用程序,目前完全由XAML驱动。所有字段,datagrids都使用ObjectDataProviders对象从XAML绑定。我有一个DataAccessLayer(DAL)导入到项目中。使用ODP检索数据的调用正用于显示数据全部正常工作。

是否可以直接从XAML使用我的DAL中存在的方法执行插入,更新,删除?我试图在这里避免任何代码隐藏,以保持UI是一个单独的实体。我找不到任何有关插入,更新,删除的明确示例。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

WPF和Xaml都没有任何插入,更新和删除的概念。数据绑定都与对象(或偶尔的XML)有关。一旦UI中的变化(例如,用户在TextBox中键入值)被推入绑定对象,就完成了数据绑定的工作。这取决于您对数据的处理方式。

这并不是“没有代码隐藏”目标的任何障碍。通常的方法是在视图(Xaml)和数据对象之间添加一个层,并将UI绑定到该层而不是底层域模型。 (这个层通常被称为ViewModel,但你也会看到它的其他名称,如Presenter。这个整体模式被称为'分离的演示'。)

在不需要代码隐藏的情况下启用操作的方法是使用命令。您的中间层不仅暴露面向数据的属性。它可以公开包含命令的属性,您可以将这些命令绑定到按钮,超链接或菜单项。这不需要任何代码隐藏 - 它只是Xaml中的绑定表达式。但是,当您单击按钮时,viewmodel中的相关处理程序代码将运行。 (ICommand是一个非常简单的实现界面 - 按钮只会在单击时调用Execute方法。而且您通常会提供自己的实现 - 内置的RoutedCommandRoutedUICommand是不适合这种情况。)

然后您可以根据需要插入/更新/删除/删除任何内容。