Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.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# 删除windows phone中的透视项目_C#_Windows_Windows Phone 7_Pivot - Fatal编程技术网

C# 删除windows phone中的透视项目

C# 删除windows phone中的透视项目,c#,windows,windows-phone-7,pivot,C#,Windows,Windows Phone 7,Pivot,我有大约30个图像,我想作为pivot控件中的项目保留。但如果我做了所有这些,我会遇到OutOfMemoryException。所以我在动态添加数据透视。现在,如果我超过某个限制,我想删除数据透视项,但如果我在数据透视选择更改时删除数据透视项,我将得到InvalideException。在片段pivotshow中是pivot控件 void PivotShow_SelectionChanged(object sender, SelectionChangedEventArgs e)

我有大约30个图像,我想作为pivot控件中的项目保留。但如果我做了所有这些,我会遇到OutOfMemoryException。所以我在动态添加数据透视。现在,如果我超过某个限制,我想删除数据透视项,但如果我在数据透视选择更改时删除数据透视项,我将得到InvalideException。在片段pivotshow中是pivot控件

    void PivotShow_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        AddItems();
    }

    private void AddItems()
    {
        PivotItem toadd = PivotGen(images[i]);
        i = (i + 1) % (images.Length);
        PivotShow.Items.Add(toadd);
        try
        {
            if (PivotShow.Items.Count > 3)
                PivotShow.Items.RemoveAt(0);
        }
        catch (InvalidOperationException)
        {
            MessageBox.Show("Operation not allowed");
        }
    }

    private PivotItem PivotGen(string urlimage)
    {
        PivotItem p = new PivotItem();
        p.Margin = new Thickness(0, -90, 0, 0);

        Image img = new Image();
        BitmapImage bmp = new BitmapImage(new Uri(urlimage, UriKind.Relative));
        img.Stretch = Stretch.Fill;
        img.Source = bmp;
        p.Content = img;

        return p;
        //PivotShow.Items.Add(p);
    }

提前感谢

这很可能发生,因为您正试图更改当前正在修改的集合。您可以按如下方式延迟代码:

        EventHandler handler = null;
        handler = (s, e) =>
        {
            element.LayoutUpdated -= handler;

            AddItems();
        };
        element.LayoutUpdated += handler;

上述代码将在下一个布局过程中调用
附加项
。试试看它是否有用

这很可能是因为您正试图更改当前正在修改的集合。您可以按如下方式延迟代码:

        EventHandler handler = null;
        handler = (s, e) =>
        {
            element.LayoutUpdated -= handler;

            AddItems();
        };
        element.LayoutUpdated += handler;
上述代码将在下一个布局过程中调用
附加项
。试试看它是否有用