Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# listview上的项目在拉取时重复以刷新表单_C#_Listview_Xamarin_Xamarin.forms_Pull To Refresh - Fatal编程技术网

C# listview上的项目在拉取时重复以刷新表单

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

我正在尝试在xamarinforms应用程序的ListView中实现拉入刷新功能。数据来自webapi。当我拉刷新它时,应用程序会将新结果附加到ListView中(仅在UI上,而不是在ViewModel中)。在视图模型中,ListItemsCount不会更改,但在UI上它会重复所有元素

以下是我在XAML代码中的ListViewCode:

<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项目,但如果不进行大量工作,就无法转换或重用这些项目。