2016-12-20 1 views
0

나는 mainUC, collectionUCeditUC이라고하는 3 User Controls을 만들었습니다.다른 사용자 컨트롤에서 문서 관리자에 문서 추가

나는 mainUCdocumentManager을 추가하고 기본 폼에 배치했습니다.

mainUC에는 collectionUC을 문서로 추가했습니다.

collectionUC에는 editUC을 열 수있는 버튼이 있습니다.

collectionUC에서 버튼을 클릭하면 을 어떻게 추가 할 수 있습니까? documentManagermainUC에 있습니까?

답변

0

아이디어는 당신이 documentManager에 문서를 추가하는 방법에 노출 어디 mainUC의 인터페이스를 만드는 것입니다 :에서

public interface IMainUC 
{ 
    void AddDocument(); 
} 

public class MainUC : XtraUserControl, IMainUC 
{ 
    ... 

    public void AddDocument() 
    { 
     EditUC editUC = new EditUC(...); 
     ... 
     this.documentManager.View.Add(editUC); 
    } 

    ... 
} 

당신의 collectionUC 당신은 생성자에 해당 인터페이스를 통과하고 그것의 멤버 변수를 만들 귀하의 사용자 정의. 당신은 또한 mainUC의 인터페이스 방법에 editUC의 인스턴스를 전달할 수 물론

public class CollectionUC : XtraUserControl 
{ 
    private readonly IMainUC m_mainUC; 
    public CollectionUC(IMainUC mainUC) 
    { 
     m_mainUC = mainUC; 
    } 

    public void MyButtonClick(object sender, EventArgs e) 
    { 
     m_mainUC.AddDocument(); 
    } 
} 

. 희망이 도움이됩니다!

+0

'CollectionUC'가'MainUC'의 객체를 가지고 있지 않은 불행한 경우에, 그는'FindForm' 메소드를 사용할 수 있습니다. 'CollectionUC' 클래스의'MyButtonClick' 메쏘드에서, 그는 할 수 있습니다 : ((MainUC) this.FindForm()). AddDocument()' – Amit