2013-07-23 6 views
0

저는 잠시 동안이 문제로 어려움을 겪었습니다. 지금까지 MVVM 프로젝트의 백업 데이터를 싱글 톤 클래스로 유지했지만 문제가 발생했습니다. 내 백업 데이터를 중앙 집중화되고 쉽게 액세스 할 수있는 위치에 보관할 수있는 좋은 방법을 찾고 있지만 정적으로 만들고 싶지 않고 이러한 시스템을 구현하는 데 문제가 있습니다.MVVM - 백업 데이터 처리

예를 들어, GameContainer이라는 클래스가 생성 된 모든 객체 중 ObservableCollection을 보유하고 있습니다. 나는이 ObservableCollection과 내 코드 전체에 포함 된 객체 인스턴스에 액세스 할 수 있기를 원하며, 더 좋은 방법이 없다면 이런 종류의 구조를 유지하고 싶습니다. 더 좋은 방법이 있다면, 나는 그것에 대해 배우고 싶습니다.

저는 프로그램이 시작될 때 각 객체의 인스턴스를 10 개 만들고 GameContainerObservableCollection을 추가하는 메서드를 initializer 클래스에 있습니다. 이제 메인 화면의 ViewModel에 이러한 객체에 대한 액세스가 필요합니다. GameContainer을 정적으로 만들지 않고 내 ViewModel이 필요한 데이터에 어떻게 액세스 할 수 있습니까?

IOC가 필요한 상황입니까? 그렇다면 어떻게 적절하게 구현할 수 있습니까?

모든 제안이나 조언을 주시면 감사하겠습니다. 나는 최근에 여기서 멈춰 섰고, 나는 내 프로젝트를 계속 진행할 수 있기를 바랍니다.

감사합니다. 나는 네가해야 할 말을보기를 고대한다.

+0

'GameContainer'를 생성자를 통해 뷰 모델에 전달 하시겠습니까? – McGarnagle

+0

왜 싱글 톤 클래스가 문제를 일으키는 지 설명 할 수 있습니까? Paul의 권장대로 정적 접근자를 사용하여 싱글 톤을 만드는 것처럼 들리는 문제에 대한 설명을 기반으로하는 것이 최선의 방법입니다. – Sauce

+0

LINQ를 사용하여 OLinq라는 확장을 통해 UI에 데이터를 필터링하고 바인딩하는 데 문제가 있습니다. 이 확장 기능은 메모리 누수를 일으킬지라도 정적 인 것과 명백하게 작동하지 않습니다. 나는 뭔가를 더 잘 찾을 수 없다면 총알을 물고 ICollectionView를 사용하여 데이터를 필터링 할 때라고 생각합니다. –

답변

3

싱글 톤에는 일반적으로 정적 접근자가 있습니다.

ViewModels에 GameContainer와 동일한 속성 또는 GameContainer의 개별 구성원에 대한 개별 속성을 설정하면됩니다.

+0

답장을 보내 주셔서 감사합니다. 그게 내가 한 일이야. 위의 설명에서 언급했듯이, 이것이 나를 위해 작동하지 않는 유일한 이유는 정적 인 것과 잘 작동하지 않는 확장 때문이었습니다. 그 연장을 버릴 때가 될지도 모른다. –