C# listview上的项目在拉取时重复以刷新表单
我正在尝试在xamarinforms应用程序的ListView中实现拉入刷新功能。数据来自webapi。当我拉刷新它时,应用程序会将新结果附加到ListView中(仅在UI上,而不是在ViewModel中)。在视图模型中,ListItemsCount不会更改,但在UI上它会重复所有元素 以下是我在XAML代码中的ListViewCode:C# listview上的项目在拉取时重复以刷新表单,c#,listview,xamarin,xamarin.forms,pull-to-refresh,C#,Listview,Xamarin,Xamarin.forms,Pull To Refresh,我正在尝试在xamarinforms应用程序的ListView中实现拉入刷新功能。数据来自webapi。当我拉刷新它时,应用程序会将新结果附加到ListView中(仅在UI上,而不是在ViewModel中)。在视图模型中,ListItemsCount不会更改,但在UI上它会重复所有元素 以下是我在XAML代码中的ListViewCode: <ListView x:Name="ImageListView" ItemsSourc
<ListView x:Name="ImageListView"
ItemsSource="{Binding portfolioModelList}"
CachingStrategy="RecycleElement"
SeparatorVisibility="None"
HasUnevenRows="True"
IsPullToRefreshEnabled="True"
IsRefreshing="{Binding IsRefreshing}"
RefreshCommand="{Binding RefreshPortfolioCommand}"
SelectionMode="None">
以下是我在ViewModel中的命令代码:
public Command RefreshPortfolioCommand
{
get
{
return new Command(async () =>
{
IsRefreshing = true;
portfolioList.Clear();
var client = new RestClient(Constant.baseUrl);
var request = new RestRequest("myapi/getlistitems", Method.GET);
var apiDocs = await client.ExecuteGetAsync<ObservableCollection<clsDocument>>(request);
var x = JsonConvert.DeserializeObject<ObservableCollection<clsDocument>>(apiDocs.Content);
portfolioList = x;
IsRefreshing = false;
});
}
}
public命令RefreshPortfolioCommand
{
得到
{
返回新命令(异步()=>
{
IsRefreshing=真;
portfolioList.Clear();
var client=new RestClient(常量.baseUrl);
var request=new RestRequest(“myapi/getlistitems”,Method.GET);
var apiDocs=wait client.ExecuteGetAsync(请求);
var x=JsonConvert.DeserializeObject(apiDocs.Content);
portfolioList=x;
IsRefreshing=假;
});
}
}
No。。您可能能够重构一些Xamarin Android代码并将其用于表单项目,但如果不进行大量工作,就无法转换或重用这些项目。不。。您可能能够重构一些Xamarin Android代码并将其用于Forms项目,但如果不进行大量工作,就无法转换或重用这些项目。