0

我是 MVVM 和 WPF 世界的新手。我一直在寻找这个问题的答案,但没有运气。我想使用我的 ViewModel 类中的 ObservableCollection 绑定一个数据网格,但是为我的 ObservableCollection 提供数据的数据来自两个不同的表,看起来像这样:

Table Location:

 - id
 - name
 - locationTypeId
 - isActive

Table LocationType:

 - id
 - name
 - isActive

所以在我的 ViewModel 类中,我无法拥有这样的东西:

public class LocationListViewModel
{
   ObservableCollection< Model.Location> dataSource;
}

无需将我的 Model 类修改为以下内容:

public class Location
{

  public Int32 id {set; get;}
  public String name {get; set;}
  public Int32 locationTypeId {set; get;}
  public Boolean isActive {get; se;}

  //added property to get the location name

  public String locationTypeName {set; get;}

}

到目前为止,我看到的所有关于数据绑定和视图模型的示例都使用一个简单的类作为示例,该类来自表作为 observablecollection 的类型。

提前致谢。

4

2 回答 2

2

只需创建一个额外的 ViewModel 用作您的行的数据项:

public class LocationViewModel: ViewModelBase
{

  public Int32 id {set; get;}
  public String name {get; set;}
  public Int32 locationTypeId {set; get;}
  public Boolean isActive {get; se;}

  //added property to get the location name

  public String locationTypeName {set; get;}

}

然后:

public class LocationListViewModel
{
   ObservableCollection<LocationViewModel> dataSource {get;set;}
}
于 2013-07-02T19:47:13.133 回答
0

我找到了一个混合两种方法的解决方案:

http://paulstovell.com/blog/dynamic-datagrid

加上 Fredrik Hedblad 对这个问题的回答:

如何将 WPF DataGrid 绑定到可变数量的列?

于 2013-08-02T23:53:29.620 回答