많은 MVVM 라이브러리가 존재하는데 왜 만들까 생각할 수도 있는데 딱 맘에 드는 MVVM 라이브러리를 찾을 수 없어 결국 직접 만들고 있습니다.
현재 구현된 기능은 View의 컨트롤 이름과 동일한 ViewModel의 메서드, KeyGesture, MenuItem의 InputKeyGesture를 자동 바인딩하는 기능입니다.
KeyGesture는 이름이 컨트롤 + 특정 접미사와 동일하면 자동 바인딩됩니다.
바인딩하기 위한 어떠한 추가 코드도 필요하지 않습니다.
원래는 속성도 자동 바인딩을 구현했으나 득보다 실이 많아 기능을 제거했고 지금은 PropertyChanged.Fody에서 지원하는 Auto 프라퍼티의 자동 OnPropertyChanged 지원을 구현 중입니다.
PropertyChanged.Fody와는 다르게 아무런 추가 코드 없이 구현할 생각이고 컴파일 시 자동으로 추가되는 코드 또한 PropertyChanged.Fody보다 훨씬 적은 추가 코드만 생성되게 할 생각입니다.
일단 View와 ViewModel 간의 바인딩에 필요한 코드를 최소화하는 데 집중한 이후 나머지 MVVM애 필요한 기능들은 개인 프로젝트를 개발하면서 추가할 생각입니다.