문제

나는 아무도 이것을 가로 질러 얻지 못했거나 아마도 무언가를 놓치지 않았다고 믿을 수 없다.

데이터 검색 및 나머지 애플리케이션 컨트롤에 데이터를 처리하는 사용자 정의 DataSourceController가 있습니다. 당연히 초기화 된 SQL 연결을 사용합니다.

내 앱 코드 :

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);
}

이제 XAML에서 ObjectDataprovider를 만들고 컨트롤에서 데이터를 바인딩하는 데 사용하고 싶습니다.

<ObjectDataProvider ObjectType="{x:Type data:DataSourceController}" x:Key="DataSource" MethodName="GetVenues" />

문제는 DataSourceController에 매개 변수가없는 생성자가 없으며 oraclesqlconnection 객체를 전달해야한다는 것입니다 (이는 내 앱 코드-비만의 공개 속성).

이것이 가능합니까? 아니면 데이터 바인딩하고 싶은 각 컨트롤에 대한 코드 내 데이터 콘텐츠 속성을 사용해야합니까?!

도움이 되었습니까?

해결책

당신은 추가 할 수 있습니다 DataSourceController 리소스로서 (매개 변수가없는 생성자가없는 경우 Code-Behind에서이를 수행해야 함) ObjectDataprovider.objectinstance 얻을 수있는 속성 DataSourceController 예를 들어, 메소드를 실행할 수 있습니다.

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);
   this.Resources.Add("myDataController", dataSource);
   base.OnStartup(e);
}

ObjectInstance 리소스를 취할 수 있습니다.

<ObjectDataProvider ObjectInstance="{StaticResource myDataController}" x:Key="DataSource" MethodName="GetVenues" />

당신의 경우 문제가있을 수 있습니다 ObjectDataProvider app.xaml에 있습니다. DataSourceController 리소스가 추가되므로 "이 경우"오류가 발생합니다.myDataController"자원은 아직 존재하지 않을 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top