안녕하세요. 아발로니아로 프로그램을 개발하다 사용자와 컨셉이 맞지 않아 UI를 전면 수정하고 있습니다.
평소대로 클래스를 넘겨 개발 하려다 다른 방법이 있나해서 문의드립니다.
MainWindow에 아래 사진과 같이 A,B,C,D 의 유저컨트롤이 있고 각 유저컨트롤의 데이터는 H 라는 클래스에서 제공하고 있습니다.
H 클래스에서 이벤트 발생시 각각의 정보를 A,B,C,D 뷰모델로 보내어 데이터를 갱신해야 해서 H 클래스 생성시 MainWindow의 뷰모델을 넘겨 처리 함수들을 쭉 나열하고 아래 소스처럼 이벤트 실행시 해당 함수를 호출하도록 했는데
//H 클래스 생성시 MainWindowViewModel을 넘겨받음
public H ( MainWindowViewModel view) {MainViewModel = view;}
H클래스에서 A 유저컨트롤에 데이터 업데이트시 함수에 값을 넘겨줌
MainViewModel.setAData(value);
//MainWindowViewModel 함수
public void setAData(string value)
{
((AViewModel) MainWindow.A.DataContext).Data = value;
}
이런식으로 만들다 보니 MainViewModel에 모든 처리 함수들이 집중되어
뭔가 분산이 안된 느낌인데…
제일 좋은 방법이 H 클래스에서 각각의 UserControl의 ViewModel에 접근하는 건데… 제 수준에서는 ViewModel들을 전역으로 올려서 접근하는거 말고는 떠오르는게 없습니다. 가장 이상적인 접근 방법이 무엇이 있을까요??