Ich kann nicht glauben, dass niemand über dies gekommen ist oder vielleicht nur etwas vermisse.Verwenden von ObjectDataProvider
Ich habe einen benutzerdefinierten DataSourceController, der das Abrufen von Daten und das Bereitstellen für die übrigen Anwendungssteuerelemente übernimmt. Natürlich verwendet es sql Verbindung, die ich auch initialisiere.
Meine App-Code:
private ISQLConnection conn;
public ISQLConnection SqlConnection { get { return conn; } }
private DataSourceController dataSource;
public DataSourceController DataSource { get { return dataSource; } }
protected override void OnStartup(StartupEventArgs e) {
//-------------------------------------------------------
// Initialize connections
conn = new OracleSQLConnection("connectionStringHere");
//-------------------------------------------------------
// Initialize controllers
//dataSource = new DataSourceController(conn);
base.OnStartup(e);
}
Jetzt möchte ich Object in XAML erstellen und es dann zum Binden von Daten in Steuerelemente verwenden:
<ObjectDataProvider ObjectType="{x:Type data:DataSourceController}" x:Key="DataSource" MethodName="GetVenues" />
Das Problem ist, dass die DataSourceController kein hat parameterloser Konstruktor und erfordert die Übergabe eines OracleSQLConnection-Objekts (eine öffentliche Eigenschaft in meinem App-Code-Behind).
Ist das überhaupt möglich? Oder ich muss auf die DataContext-Eigenschaft in Code für jedes Steuerelement zurückgreifen, das ich binden möchte ?!
Danke Robert! Ich habe es versucht und es hat funktioniert! Obwohl ich später einige (nicht verwandte) Probleme hatte, musste ich mich für In-Code-Init entscheiden und dann das Objekt als DataContext meines Fensters setzen. – Alexandra