Form1에 TreeView가 있습니다. 내 의도는 TreeView 수정할 "사용자"라는 클래스가 있습니다. TreeView를 전역으로 만들고 User 클래스에서 액세스 할 수 있습니까?TreeView를 전역으로 만들 수 있습니까?
1
A
답변
2
일반적으로 UI는 나머지 모든 "비즈니스 로직"위에 레이어 여야합니다.
예를 들어 트리를 채우는 IEnumerable<User>
콜렉션을 노출하는 일부 UserManager
클래스가있을 수 있습니다. 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로 옮기고 비즈니스 로직을 접할 필요가 없습니다. 그것을 호출하는 코드 만이 그 이벤트를 수신합니다.
관련 문제
- 1. OpenGL 확장 포인터를 전역으로 만들 수 있습니까?
- 2. TreeView를 사용하여 WPF에서이 예제와 같은 탐색 컨트롤을 만들 수 있습니까?
- 3. 함수 포인터를 사용하여 기존의 정적 메서드를 전역으로 만들 수 있습니까?
- 4. TreeView를 만들 때 스택 오버플로가 발생했습니다.
- 5. TreeView를 List처럼 보이게 할 수 있습니까?
- 6. 사용할 인터페이스 구현을 전역으로 설정할 수 있습니까?
- 7. 어떻게 RenderingHints를 전역으로 설정할 수 있습니까?
- 8. ASP.NET TreeView를 아래쪽이 아닌 위쪽으로 확장 할 수 있습니까?
- 9. EnableViewState = False 인 TreeView를 선택할 수 없습니다.
- 10. 앱을 만들 수 있습니까?
- 11. 어떻게 만들 수 있습니까?
- 12. 템플릿을 만들 수 있습니까?
- 13. 폐막탄을 만들 수 있습니까?
- 14. 이 만들 수 있습니까?
- 15. TreeView를 사용하는 방법
- 16. TreeView를 확장 및 축소
- 17. PHP에서 treeview를 표시하는 방법
- 18. TreeView를 행이 루비 GTK
- 19. .NET TreeView를 확장합니다. CheckBox
- 20. qDebug() 부동 소수점 정밀도와 숫자 형식을 전역으로 설정할 수 있습니까?
- 21. iOS 앱에서 전역으로 순환 게재를 사용 중지 할 수 있습니까?
- 22. 현재 세션 정보를 vibe.d에 전역으로 저장할 수 있습니까? (dlang) 사이트에서
- 23. Virtual Treeview를 설치하는 방법?
- 24. 동적으로 TreeView를 설정하는 방법
- 25. TreeView를 클릭하십시오. 항목 창을여시겠습니까?
- 26. DropDown에서 TreeView를 표시하는 방법
- 27. .NET 용 TreeView를 사용하는 방법?
- 28. 다른 스레드에서 treeview를 업데이트하십시오.
- 29. 변수를 통해 전역으로 컨트롤에 액세스하기
- 30. Arraylist에서 TreeView를 빌드하는 방법
아주 저조한 디자인입니다. 클래스가 UI에 연결되어서는 안됩니다. – SLaks
내가 계속 나아가면서 그것이 더욱 분명 해지고 있습니다. 나는 그것을 함께 구 trying 주려고 노력했다. 나는 나의 접근법을 재평가해야 할 것이다. 감사. – GoodBoyNYC
User 클래스의 대리자를 Form1 폼에 사용하십시오. – Max