0
在我的Xamarin Forms應用程序中,我有一個帶有不同單元格的ListView,使用DataTemplates和DataTemplateSelectors。對於一種類型的單元格,它有一個按鈕,當它被點擊時,導航到另一個只包含僅由字符串組成的ListView的頁面。使用NavigationParameters填充ListView?
我的問題出現在頁面加載後調用的OnNavigatedTo方法,因此我傳遞給此新的「僅ListView」頁面的列表更新了在創建ListView後將ListView綁定到的值並填充,但它沒有填充任何內容,因爲數據通過OnNavigatedTo方法來自前一頁。
public class ListPageViewModel : _ViewModelBase
{
private INavigationService _navigationService;
public ListPageViewModel(INavigationService navigationService)
{
_navigationService = navigationService;
_strings = new List<string>()
{
"Jaguar", "Elephant", "Nemo", "Cat", "Dog", "Iguana", "Puma", "Crow", "Hawk", "Owl", "Badger", "Meerket",
"Shark", "Whale", "Monkey", "Snake", "Lion", "Zebra", "Hippo", "Squirrel", "Rhino", "Bear", "Moose",
"Camel", "Chicken", "Cow", "Sheep", "Turkey", "Jellyfish", "Salmon", "Parrot", "Wolf", "Gecko"
// Placeholder before we have lists of customers
};
}
private IEnumerable<string> _strings;
public IEnumerable<string> Strings { get { return _strings; } set { SetProperty(ref _strings, value); } }
public override void OnNavigatedTo(NavigationParameters parameters)
{
base.OnNavigatedTo(parameters);
if (parameters.ContainsKey("dataList"))
{
_strings = (List<string>)parameters["dataList"];
}
}
}
所以,當我瀏覽這個頁面時,_strings
列表第一填充動物的列表,然後顯示在ListView所有動物的頁面加載,然後經過ListView控件加載它改變了_strings
列表的值與隨NavigationParameters一起傳遞的列表相同。那麼如何在每次更改或更新_strings
列表時更新ListView?