두개의 창을 띄운 후, 다른 창에서 다른 하나창의 데이터를 건드리고 싶습니다.

안녕하세요 .

동시에 두개의 창을 띄운 후 한 화면에는 데이터베이스만 보여주고, 다른 화면에서는 조작하는 버튼만 구현하여 데이터베이스에 원하는 조작을 할 수 있도록 하고싶습니다.
저는 지피티에게 물어보면서 한 결과, 공통클래스를 이용하여 한 화면에서 이루어진 데이터베이스를 저장하여 사용하고자 합니다.

제가 작업을 하다보니 든 생각이 2가지 방향이 있습니다.

1번 방법.
데이터베이스를 표현하는 창이 1번, 컨트롤 박스 창이 2번
2번창의 버튼을 누르면 1번창에서 작업하였던 데이터베이스의 구조체에 접근해서 데이터베이스를 바꿔주는것

2번방법
1번창에 바꾸는 메서드를 다 만들어 놓은 후, 2번창에서 버튼을 누르면, 1번창의 메서드를 실행하여 데이터베이스를 바꾸는 방법

어떤 게 합리적인가요…? 2번이 데이터베이스 관리하기엔 적합하며, 객체의 장점을 살리는 방법이라서 맞는 것 같긴한데, 1번창에 해당하는 메서드들이 너무 모이게 될 것같아서 안 좋은 방법인가 싶기하며, 제가 직관적으로 접근했던 방법이 1번이다보니…

어떤 게 추후 개발 시에 좋은 코딩인지 궁금합니다.

질문 드립니다 !

1 Like

C# WPF에서는 주로 MVVM 패턴으로 Model, ModelView, View 형태로 데이터를 binding해서 UI에 업데이트 해주는 식으로 사용합니다.

2 Likes

감사합니다! 확인해서 공부해보겠습니다!

1 Like

위에 @donghun_lee 님께서 답변해 주신 대로 하나의 ViewModel을 1번 View와 2번 View에서 공유하시면 됩니다.
ViewModel에 View1에 보여질 데이터 목록 속성과 View2에서 사용할 동작(Command 등)을 정의하시면 됩니다.

var viewModel = new ViewModel();

View1.DataContext = viewModel;
View2.DataContext = viewModel;
1 Like