我有一個包含元素列表(可點擊的設置)的頁面,每個元素都有一個SettingViewModel關聯。 每個元素在頁面視圖模型的構造函數中設置,就像這樣:作爲ViewModel中的一個屬性的函數
AccountSettingsVMList.Add(new SettingViewModel()
{
SettingTitle = AppResources.MainApp_EditProfileSetting,
PageType = typeof(EditProfilePage)
});
點擊每一個元素,我觸發頁面導航:
public void SelectSetting(SettingViewModel setting)
{
Type pageType = setting.PageType;
if (pageType != null)
{
NavigationManager.NavigateToView(pageType);
}
}
現在,這一切工作正常,很正常,但對於某些設置,我需要發送序列化參數。問題是我會通過執行異步的web服務調用來獲取這些參數。 我需要知道如何將一個方法指針添加爲參數視圖模型,這樣我就可以建立的設置爲:
AccountSettingsVMList.Add(new SettingViewModel()
{
SettingTitle = AppResources.MainApp_EditProfileSetting,
PageType = typeof(EditProfilePage),
Call = ProfileParams_Call
});
,然後調用朝向觀看導航之前得到的參數:
public void SelectSetting(SettingViewModel setting)
{
object obj = null;
if (Call != null)
{
obj = await Call();
}
Type pageType = setting.PageType;
if (pageType != null)
{
NavigationManager.NavigateToView(pageType, obj);
}
}
如何定義SettingViewModel中的屬性來實現此目的?
P.S:爲了完整起見,這是目前SettingViewModel代碼:
public class SettingViewModel : BaseViewModel
{
private string _settingTitle;
public string SettingTitle
{
get { return _settingTitle; }
set
{
_settingTitle = value;
NotifyPropertyChanged("SettingTitle");
}
}
private Type _settingPage;
public Type PageType
{
get { return _settingPage; }
set { _settingPage = value; }
}
}
它的工作!謝謝! – Jserra