如何绑定Observable Collection并保存到数据库

时间:2012-02-01 23:47:00

标签: wpf vb.net xaml observablecollection

我将很快做一个MVVM项目,我正在做一些教程/示例。如何获取以下代码并将其连接到数据库。如果我有一个数据网格,我如何更改数据网格中的信息并让它自动更新?我将使用MS SQL。感谢您的任何提示或建议。

Class Person 

  Property _name As Integer
Property Name As Integer
    Get
        Return _name
    End Get
    Set(value As Integer)
        _name = value
        RaisePropertyChanged("Name")

    End Set
End Property
End class

然后在另一个班级:

Class Collections

Public namelist As New ObservableCollection(Of Person)

    namelist.Add(New Person With {.Name = Nothing}) 

---然后在XAML

    <ObjectDataProvider x:Key="test" ObjectType="{x:Type local:Collections}"

     <DataGrid ItemsSource="{Binding Source= {StaticResource test}}">

      <DataGridTextColumn Header="Name" Binding="{Binding Sample, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />

  ect...ect....ect...

现在我在哪里或如何将MS SQL表连接到所有这些?

1 个答案:

答案 0 :(得分:2)

如果你正在使用MVVM,那么你的绑定(如果连线正确)会将你在GridView中所做的更改传播到它们绑定的属性,如果在单元格编辑完成时连接事件等等。

这是一个来源:

http://www.dotnetcurry.com/ShowArticle.aspx?ID=563

我来自C#唯一的背景,但是,

例如,如果您有可观察集合的属性:

 public ObservableCollection<string> Collection {get; set;}

在ViewModel上,如果您通过设置View的DataContext将视图(.xaml)绑定到VM,并且已将此OC绑定到组合框,更改组合框上的selectedValue将更新您绑定的SelectedValue在.xaml。

因此,如果您选择将此组合框绑定到SelectedValue属性:

 public string SelectedValue {get; set;}

当你选择组合框中的一个选项时,会在视图模型上更新该值,它将进入属性的设置部分。

对于你绑定到GridView的任何内容都是如此。如果您有一个ObservableCollection,您的gridview也会绑定,那么当您认为更改应更新ViewModel并使用ICommand将更改传播到VM时,您需要连接视图上的事件。

另一个问题是你需要使用VB吗?我知道使MVVM变得更容易的框架就像Caliburn.Micro在C#中一样,必须有一些框架才能使用MV轻松实现MVVM。虽然你正在尝试的是基本的MVVM并不难设置,但这些框架通常可以节省你手动连接绑定所需的时间。