好吧,我正在構建一個應用程序,該應用程序搜索數據庫以查詢給定的查詢,並在之後下載其結果,以將其顯示在主頁的列表框中。使用MVVM搜索
每個結果都有更多的細節可供參考,所以我決定使用的第一件事是某種細節頁面。但我不知道該如何實現這個過程:
- 上的MainPage,填寫文本框,然後按按鈕搜索
- 不知去到MainViewModel與的MainPage的文本框的值調用LoadData()方法
好吧,我正在構建一個應用程序,該應用程序搜索數據庫以查詢給定的查詢,並在之後下載其結果,以將其顯示在主頁的列表框中。使用MVVM搜索
每個結果都有更多的細節可供參考,所以我決定使用的第一件事是某種細節頁面。但我不知道該如何實現這個過程:
請記住,MVVM是:模型,視圖&視圖模型。
因此,您在主頁面(視圖)上搜索觸發該頁面視圖模型中的代碼。然後你在新的視圖中顯示細節,所以真的你應該考慮的是:
我和我的MVVM系統做的是做一個標準的網頁瀏覽和參數傳遞到新的頁面,然後我抓住,在OnNavigated方法和分析出來,並把它傳遞給視圖模型,然後過濾具有該值的模型中的數據。
視圖模型
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}"/>
當命令是由搜索條件調用濾波器數據通知視圖。
這裏是MVVM圖案的描述:http://en.wikipedia.org/wiki/Model_View_ViewModel
什麼是視圖模型意味着什麼? XAML? – Clue
@線索在開始你的應用程序之前,你可能會更好地閱讀關於MVVM的內容。如果你不明白至少有1/3是什麼,你怎麼能遵循一個模式? – Thelonias
@Clue您的視圖是XAML,綁定到它的代碼是ViewModel(VM)。虛擬機通常會與模型進行對話,模型是處理與數據庫交談的單獨代碼......這個想法是模型是數據結構,但通常數據結構並不適合您要顯示的內容,因此您有理解模型的中間層,並將這些數據放入一個結構中,該結構是視圖的最佳表示。它聽起來像你只有一個模型和你的代碼視圖,這就是爲什麼這很難爲你解決。 –