0
일부 뷰가 포함 된 복잡한 사용자 정의 컨트롤이 있고 각 뷰에는 고유 한 ViewModel이 있습니다. 제 질문은 어떻게 각각의 ViewModel이 각각 별도의 서비스 호출을하지 않고도 일부 데이터 (예 : 관찰 가능한 컬렉션)를 공유 할 수 있습니까?Silverlight ViewModels간에 데이터 공유
일부 뷰가 포함 된 복잡한 사용자 정의 컨트롤이 있고 각 뷰에는 고유 한 ViewModel이 있습니다. 제 질문은 어떻게 각각의 ViewModel이 각각 별도의 서비스 호출을하지 않고도 일부 데이터 (예 : 관찰 가능한 컬렉션)를 공유 할 수 있습니까?Silverlight ViewModels간에 데이터 공유
서비스는 데이터를 추상화해야합니다. 그 데이터가 WS, DB 등에서 추출되었는지 여부는 부적합합니다. 각 ViewModel에는, View에 의해 바인드되는 프롭퍼티를 포함 할 수가 있습니다. 해당 속성은 ObservableCollection<T>
일 수 있습니다.이 번호는 서비스에 대한 호출을 래핑합니다. 이 데이터는 실제로 서비스를 통해 캐시 될 수 있으며 주기적으로 만 업데이트되지만 ViewModels간에 검색하기 위해 데이터를 단일 참조 지점으로 푸시합니다.
감사합니다. Aaron, "단일 참조 지점"이라고 말하면 서비스가 정적 클래스로 구현되어야 함을 의미합니까? – AssafDamari
@Assaf 그것은 의존 할 수 있습니다 ...하지만 어떤 형태로든 싱글 톤을 캐싱을 사용하고자하는 경우에는 다른 것이 필요할 것입니다. 따라서 귀하의 서비스를 정적으로 만드는 것이 하나의 선택이 될 것입니다. Prism 또는 다양한 프레임 워크를 사용하는 경우 객체의 수명을 싱글 톤처럼 동작하도록 설정할 수 있으므로 유형을 해석 할 때 동일한 인스턴스가 요청자에게 제공됩니다. –