[英]Xamarin forms refresh carouselview after dowloading data
我在學習xamarin,
每次下載數據時,我都試圖刷新我的 carouselView。
數據已正確下載,但問題是當我下載新數據時,我想在我的 carrouselView 上交換以查看上一次數據下載后的新數據。
輪播“移動”並將我定位在我之前的 position(索引),即使我想在每次數據下載時成為 position(索引)0 上的 position
如何正確刷新輪播視圖?
這是我的代碼 CS:
try
{
// trying to refresh by renitializing my carouselView
Device.BeginInvokeOnMainThread(() =>
{
NewsList.Position = 0;
NewsList.ItemsSource = null;
});
// Perform the Web request and get the response
HttpWebResponse response = (HttpWebResponse)request.GetResponseAsync().Result;
// Data Downloaded
string json = new StreamReader(response.GetResponseStream()).ReadToEnd();
JObject joResponse = JObject.Parse(json);
JArray MyJsonResult = (JArray)joResponse["value"];
List<NewsModel> newsObj = new List<NewsModel>();
foreach (var j in MyJsonResult)
{
joResponse2 = JObject.Parse(j.ToString());
if (joResponse2["image"]!= null)
{
var news = new NewsModel();
news.NewsName = GetFewWordsSentence(joResponse2["name"].ToString()) ;
news.NewsDate = joResponse2["datePublished"].ToString();
news.NewsImageUrl = joResponse2["image"]["contentUrl"].ToString();
newsObj.Add(news);
// feed my carouselView in the loop for performance
// I have already try, to put this line out of the loop but it is not refresh correctly also
Device.BeginInvokeOnMainThread(() =>
{
NewsList.ItemsSource = newsObj;
});
}
}
}
catch (Exception e)
{
Console.Error.WriteLine(@"ERROR {0}", e.Message);
}
提前致謝
輪播“移動”並將我定位在我之前的 position(索引),即使我想在每次數據下載時成為 position(索引)0 上的 position
根據你的描述,你下載數據顯示CarouselView,然后你在position中的任意一個item換成CarouselView。你想顯示新數據和go到position 0再下載數據,我說的對嗎?
如果是的話,我建議你可以先用observablecollection來代替List,它實現了INotifyPropertychanged接口來通知數據更新的時候。
public ObservableCollection<NewsModel> newsObj { get; set; }
然后再次下載數據時清除數據,
newsObj.Clear();
使用 ScrollTo 將指定索引處的項目滾動到視圖中。
Device.BeginInvokeOnMainThread(()=>
{
newsList.ScrollTo(0);
}
) ;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.