[英]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.