2012-09-06 2 views
0

글쎄, 나는 주어진 쿼리에 대해 DB를 검색하고 그 결과를 다운로드하여 메인 페이지의 목록 상자에 표시하는 App을 빌드하고 있습니다.검색을 위해 MVVM을 사용하여

모든 결과에는 더 많은 세부 정보가 포함되어 있으므로 사용하기로 결정한 첫 번째 세부 정보 페이지가 있습니다. 어떻게 든 MainViewModel에로 이동 MainPage의 텍스트 상자의 값으로 LoadData() 메소드를 호출 MainPage에

  • 를 검색 텍스트 상자 및 버튼을 누르 작성 :하지만이 과정을 실현하는 방법을 모른다

답변

1

MVVM은 다음과 같습니다. 모델,보기 & 모델보기.

따라서 해당 페이지의보기 모델에서 코드를 트리거하는 기본 페이지 (보기)에서 검색 할 수 있습니다. 그런 다음 세부 정보를 새보기로 표시하므로 실제로 생각해야하는 것은 다음과 같습니다.

  1. 하나의보기 모델에서 다른보기 모델로 매개 변수를 전달하는 방법은 무엇입니까? MVVM 프레임 워크에 따라 다르므로 어떤 프레임 워크를 명시하지 않았으므로 구체적인 정보를 제공 할 수 없습니다.
  2. 그런 다음 매개 변수를 사용하여 모델에서 검색을 사용하십시오 (질문에서 무시하십시오).

내 MVVM 시스템에서 수행하는 작업은 표준 페이지를 탐색하여 새 페이지에 매개 변수를 전달한 다음 OnNavigated 메서드에서이를 가져 와서 구문 분석 한 후 뷰 모델에 전달합니다. 그 값을 가지는 모델 내의 데이터 보기 코드 숨김에서

+0

을 의미한다 : 여기

은 MVVM 후두둑의 설명이다? XAML? – Clue

+0

@ 알아두면 응용 프로그램을 시작하기 전에 MVVM에 대한 정보를 읽는 것이 좋습니다. 조각의 1/3 이상이 무엇인지 이해하지 못한다면 어떻게 패턴을 따라갈 수 있습니까? – Thelonias

+0

@Clue보기가 XAML 인 경우 바인딩 된 코드는 ViewModel (VM)입니다. VM은 일반적으로 데이터베이스와의 대화를 처리하는 별도의 코드 인 모델과 대화를합니다. 아이디어는 모델이 데이터 구조이지만 데이터 구조가 표시하려는 내용에 맞지 않아서 중간 계층은 모델을 이해하고 해당 데이터를 사용하여 뷰를 사용하기에 가장 적합한 구조로 변환합니다. 코드에서 모델 및 뷰만있는 것처럼 들리므로이를 해결하기가 어렵습니다. –

2

뷰 모델

public class SearchViewModel { 
     public ICommand SearchCommand {get;set;} 
     public string SearchCriteria {get;set;} 
    } 

View.DataContext = viewModel 

보기 XAML : 명령이 검색 기준으로 필터 데이터를 호출

<Button Command="{Binding SearchCommand}"/> 
    <TextBox Text="{Binding SearchCriteria}"/> 

뷰를 통지합니다. 뷰 모델 무엇을 http://en.wikipedia.org/wiki/Model_View_ViewModel

+0

여기서 정확히 무엇을 의미하지 않는지 정확히 알지 못합니다. – Clue

+0

MVVM은 모델 뷰이며 ViewModel입니다. 모델은 데이터이고, 뷰는 UI이며, ViewModel은 뷰가 바인딩 된 클래스입니다. – syned

+0

예, 뷰와 관련하여 어떤 의미입니까? DataContext? – Clue

관련 문제