2012-09-14 2 views
0

명확하게 질문을했는지 확신 할 수 없지만 두 개의 별도 페이지와 단일 뷰 모델이 있습니다. 원래 페이지가 하나 뿐이었지만 페이지가 너무 커 (특히 두 페이지가 사용자에게 더 나은 데이터를 분리하는 한 페이지에 피벗 항목이 너무 많았 기 때문에)이를 분할하기로 결정했습니다. 뷰 모델에서 하나의 뷰에만 특정 데이터를로드 할 수 있는지 궁금합니다. 뷰 모델이 전체 데이터를로드하려고 시도하기 때문에 현재 애플리케이션이 고정되어 있기 때문에 약 절반 만 필요합니다. 사용자가보고있는 현재 페이지에서 사용됩니다. 그렇다면 뷰 모델이 어떤 데이터를 로딩해야하는지 알 필요가 있다고 가정합니다. 나는 어떻게 이것을 달성 할 것인가? 또는 각 페이지에 필요한 데이터 만 적절하게로드되고 응용 프로그램이 정지되지 않도록 각 페이지마다 두 개의 개별 뷰 모델을 만드는 것이 좋습니다. 표준이 무엇인지, CPU 사용량과 응답 시간 등에서 가장 효율적인 것이 무엇인지 모르겠습니다.특정 뷰 모델 데이터를 선택하여 특정보기에로드하는 방법

답변

1

필요한 것보다 더 많은 데이터를로드하는 것이 특히 문제가 될 수 있습니다. 인터넷. 왜 그렇게 좋아하니? 두 부분으로 뷰 모델을 분리하지 않는 이유는 무엇입니까? VM의 정의는 기본적으로 말한다 : (Model-View-ViewModel (MVVM) Explained에서 인용)는 프리젠 테이션의 분리, 또는 모델에서 별도의 뷰의 뉘앙스를 유지의 개념을 소개하기 때문에

뷰 모델은 깡패의 중요한 조각이다. 모델이 사용자의 시각을 인식하도록하여 날짜를 표시 형식으로 변환하기 만하면 모델은 단순히 데이터를 보유하고보기는 형식이 지정된 날짜 만 보유하며 컨트롤러는 두 날짜 간의 연락 역할을합니다 .

보기를 분리하면 사물을 단순하게 유지하기 위해 VM을 분리 할 수도 있습니다.

그래도 문제가 해결되지 않고 데이터가 특정 서비스로 공개되지 않는 경우 VM의 일부만 사용하지 않는 이유는 무엇입니까? 보고있는 페이지에 따라 필요한 메서드 만 호출하고 필요한 속성 만 설정하고 모두 수행하지 마십시오. 데이터가 처리하기에 너무 커서 UI가 고정되지 않도록하려면 다른 스레드에서 수행하십시오 (물론 진행률 막대를 사용하여 데이터를 가져 오는 중임을 사용자에게 보여줍니다).

설명 된 시나리오에 충분합니다.

+0

네, 그게 정확히 내가하고있는 일에 대해 생각한 것입니다. 귀하의 회신에 감사드립니다. 사실 인터넷에서 데이터를로드하는 중입니다. 따라서 VM을 분리하여 어떻게 작동하는지 확인할 수 있습니다. – Matthew

+0

.. 그리고 그것은 효과가 있었고, 응답하고 싶었다! 그런데 WP7 Windows phone 8에서 블로그를 매우 사랑스럽게 다루어야합니다! – Matthew

+0

고마워요 @Matthew! –