Wenn Sie MVVM Muster verwenden, ich denke, das ist bessere Lösung:
Erstellen Sie ObservableCollecion in Ihrem ViewModel, das angebunden wirdin DataGrid
:
public ObservableCollection<T> bindableCollection;
Dann holen Daten aus Ihrer Datenbank, Beispiel:
public void RefreshDataGrid(){
using (var conn = new SqlConnection(ConfigurationManager.ConnectionStrings[
"RecipeManager.Properties.Settings.RecipeManagerConnectionString"].ConnectionString)){
var fetchedData = conn.Query<Flavour>("select * from [Flavour]");
ConvertToDataTable(fetchedData);
}
}
Die letzten Schritt, und die wichtigsten, create-Funktion, die auf Ihren ObservableCollection IEnumerable hinzufügen wird:
private void ConvertToObservableCollection(IEnumerable<Flavour> items){
ObservableCollection<Flavour> flavours = new ObservableCollection<Flavour>();
foreach (var item in items){
Flavour flavour = item as Flavour;
flavours.Add(new Flavour(flavour.Name,flavour.Company,flavour.Shop,flavour.Amount));
}
Flavours = flavours;
}
Ich denke, das ist ein guter Ansatz für MVVM.
Haben Sie versucht, ihm einen Typ zu geben? 'cn.Query (...);' –
mxmissile
Ich muss es generisch halten, da das Grid abhängig von Benutzereingaben an verschiedene Typen gebunden ist. –