簡體   English   中英

可以使TreeView全局化嗎?

[英]Possible to make TreeView global?

我在Form1中有一個TreeView。 我有一個名為“ User”的類,其目的是修改TreeView。 是否可以使TreeView全局化並可以從我的User類訪問?

通常,您的UI應該位於所有“業務邏輯”其余部分之上。

例如,您可能有一些UserManager類,該類公開了IEnumerable<User>集合,可從中填充樹。 UI上的事件導致對業務邏輯的調用。

當業務邏輯中的事物需要更新UI時,應將它們公開為events 事件本質上是.NET中的智能“回調函數”。 UI擁有為這些事件注冊的事件處理程序,並在業務層指示更改時進行相應的更新。

class User { }
class UserManager {
    public IEnumerable<User> Users { get { ... } }

    public event UserLoggedInEventHandler UserLoggedIn;

}


class UI {
    private UserManager m_usrMgr;

    public UI() {
        m_usrMgr = UserManager.GetSingletonInstance();
        m_usrMgr.UserLoggedIn += UserLoggedInHandler;
    }

    private void AddUserButtonClicked(...) {
        m_userMgr.AddUser(username, ...);
    } 

    private void UserLoggedInHandler(...) {
        MessageBox.Show("User x logged in");
    }
}

使用事件有助於使您的班級脫鈎。 有了設計良好的系統,您可以使用將整個系統移至其他UI,而不必觸及業務邏輯; 僅調用它的代碼,並偵聽來自它的事件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM