Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.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# MvxObservableCollection AddRange_C#_Wpf_Xaml_Binding_Mvvmcross - Fatal编程技术网

C# MvxObservableCollection AddRange

C# MvxObservableCollection AddRange,c#,wpf,xaml,binding,mvvmcross,C#,Wpf,Xaml,Binding,Mvvmcross,我有viewmodel(带Fody INPC): 现在,当我单击按钮时,我得到错误“不支持范围操作”。当我从xaml中删除ListView时,所有操作都正常。 我可以将ListView更改为DataGrid或其他列表控件-错误将是相同的 我想知道,如何将视图绑定到MvxObservableCollection?如果您自己一个一个地将项目添加到源集合中会怎么样 private async void GetItemsAsync() { var items = await itemsServi

我有viewmodel(带Fody INPC):

现在,当我单击按钮时,我得到错误“不支持范围操作”。当我从xaml中删除ListView时,所有操作都正常。 我可以将ListView更改为DataGrid或其他列表控件-错误将是相同的


我想知道,如何将视图绑定到MvxObservableCollection?

如果您自己一个一个地将项目添加到源集合中会怎么样

private async void GetItemsAsync()
{
    var items = await itemsService.GetItemsAsync();
    ItemsCollection.Clear();
    foreach (var item in items)
        ItemsCollection.Add(item);
}
…或将源属性重新设置为新集合:

private async void GetItemsAsync()
{
    var items = await itemsService.GetItemsAsync();
    ItemsCollection = new MvxObservableCollection<Item>(items);
}
private async void GetItemsAsync()
{
var items=await itemsService.GetItemsAsync();
ItemsCollection=新的MvxObservableCollection(项目);
}

显然,“范围操作不受支持”用于数据绑定
MvxObservableCollection

“Foreach添加”和“重新设置”工作正常。我现在使用“foreach add”。我认为还有另一种绑定MvxObservableCollection的方法可以使AddRange工作。您得到的异常消息应该是不言自明的。显然,不支持调用AddRange。在将视图绑定到MvxObservableCollection之前,支持调用AddRange。这是在集合被数据绑定之前的点…错误消息对您来说还不清楚吗?或者你现在的问题是什么?
[MvxViewFor(typeof(ItemsViewModel))]
partial class ItemsView
{
    public DocumentTypeEditorView()
    {
        InitializeComponent();
    }
}
private async void GetItemsAsync()
{
    var items = await itemsService.GetItemsAsync();
    ItemsCollection.Clear();
    foreach (var item in items)
        ItemsCollection.Add(item);
}
private async void GetItemsAsync()
{
    var items = await itemsService.GetItemsAsync();
    ItemsCollection = new MvxObservableCollection<Item>(items);
}