2014-08-28 115 views
0

結合我有XAML代碼這樣產生一個DataGrid:XAML中的DataGrid從數據庫表

<DataGrid Name="DonneesBrutes" ItemsSource="{Binding Resultat}" Margin="10,65,0,0" AutoGenerateColumns="True" ></DataGrid> 

我試圖把它綁定到我的數據庫的一個表,名爲BDDInterne數據庫和表命名Resultat。我創建了使用實體框架該數據庫5

我已經找到了物業

ItemsSource="{Binding ...}" 

,但我只看到與在xaml.cs創建的,而不是從數據庫中的表DATAS例子。

希望我給了足夠的信息。我當然可以更新我的帖子,如果有東西丟失。

如果有人已經做了這種綁定,它可以幫助我。

在此先感謝。

EDIT1:

這是產生Resultat代碼:

public partial class Resultat 
{ 
    public string NomTable { get; set; } 
    public string Groupe_D_alerte { get; set; } 
    public string NomChamp { get; set; } 
    public string TOTMPMRQ { get; set; } 
    public string SiModifie { get; set; } 
    public string LibelléTOTAvant { get; set; } 
    public string LibelléTOTApres { get; set; } 
    public string Remarque { get; set; } 
} 
+0

也請分享代碼來生成/檢索'Resultat' – pushpraj 2014-08-28 08:12:17

+0

如果你想直接鏈接到數據庫,'EntityFramework'是一個常用的方法:http://msdn.microsoft.com/en-us/data /jj574514.aspx – Damascus 2014-08-28 08:13:40

+0

@Damascus的聲音我還沒有聲明DataContext,這是我的錯誤之一,我想。 – Kraenys 2014-08-28 08:19:25

回答

0

你不直接綁定到與EF數據庫。

我怎麼會(使用MVVM模式)來解決:

  1. 我的觀點將結合ItemsSource在我的視圖模型的屬性,這將是類的集合,像ResultatCollectionDataGrid。該數據網格中的列將綁定到該類類型的屬性。
  2. 我的虛擬機會調用一個服務,該服務利用EntityFramework來填充ResultatCollection,其查詢適合我要顯示的內容。對你來說,也許這就是一切。

在視圖模型屬性聲明:

private ObservableCollection<Resultat> _resultatCollection; 
public ObservableCollection<Resultat> ResultatCollection 
{ 
    get { return _resultatCollection; } 
    set 
    { 
     if (value == _resultatCollection) return; 
     _resultatCollection = value; 
     RaisePropertyChanged(() => ResultatCollection); 
    } 
} 

在虛擬機某些時候,我會讓到返回我的數據服務的調用,然後當它返回的數據我會填充我收集的結果,這樣的事情:

ResultatCollection = new ObservableCollection(loadOp.Entities); 

是的,這一切都假定視圖的DataContext的是視圖模型...

+0

我在哪裏寫'ResultatCollection = new ObservableCollection(loadOp.Entities);'?如果我將它寫出'Public ObservableCollection ResultatCollection',我有很多錯誤,如果我寫入它,我有一個get或set訪問器。另一方面,'RaisePropertyChanged'在當前上下文中不存在。 – Kraenys 2014-08-28 12:42:27

+0

您打電話給您的服務(可能在您的虛擬機的構造函數中,可能是由用戶操作驅動的)。這通常是異步的。在從異步返回(或者如果你正在使用await異步模式,你只是等待結果),你會得到結果。對我而言,這些結果將作爲帶實體屬性的loadOp返回(因爲我使用RIA服務)。對他們來說,他們可能是另一種形式。 – Mashton 2014-08-28 14:27:27

+0

所以你不能複製粘貼我的代碼,我把它作爲幾個關鍵點的例子。 (a)如何獲得我的結果(b)我是否使用MVVM – Mashton 2014-08-28 14:28:35