1

このようなページがあります

<Page.Resources>
    <!--
        這個頁面顯示的群組項目集合,繫結到完整項目
        清單的子集,因為群組中的項目無法虛擬化
    -->
    <CollectionViewSource
        x:Name="groupedItemsViewSource"
        Source="{Binding Groups}"
        IsSourceGrouped="true"
        ItemsPath="TopItems"
        d:Source="{Binding AllGroups, Source={d:DesignInstance Type=data:SampleDataSource, IsDesignTimeCreatable=True}}"/>

    <!-- TODO: 如果已在 App.xaml 中宣告金鑰 AppName,則刪除這一行 -->
    <x:String x:Key="AppName">我的應用程式</x:String>
</Page.Resources>

    <local:MyGridView            
        Grid.Row="1"
        x:Name="itemGridView"
        VerticalAlignment="Top"
        Padding="116,0,40,0"
        ItemsSource="{Binding Source={StaticResource groupedItemsViewSource}}"                    
        SelectionMode="Multiple"
        IsSwipeEnabled="True"
        IsRightTapEnabled="False"
        AutomationProperties.AutomationId="ItemGridView"
        AutomationProperties.Name="Items"
        ScrollViewer.IsHorizontalScrollChainingEnabled="False"                    
        IsItemClickEnabled="True"
        ItemTemplate="{StaticResource Standard180x240ItemTemplate}"
        SelectionChanged="itemGridView_SelectionChanged_1"
        ItemClick="ItemView_ItemClick">

        <local:MyGridView.ItemsPanel>
            <ItemsPanelTemplate>
                <VirtualizingStackPanel Orientation="Horizontal"/>
            </ItemsPanelTemplate>
        </local:MyGridView.ItemsPanel>
        <local:MyGridView.GroupStyle>
            <GroupStyle>
                <GroupStyle.HeaderTemplate>
                    <DataTemplate>
                        <Grid Margin="1,0,0,6" >
                            <Button AutomationProperties.Name="Group Title" Style="{StaticResource TextPrimaryButtonStyle}" >
                                <StackPanel Orientation="Horizontal">
                                    <TextBlock Text="{Binding Title}" Margin="3,-7,10,10" Style="{StaticResource GroupHeaderTextStyle}" />
                                </StackPanel>
                            </Button>
                        </Grid>
                    </DataTemplate>
                </GroupStyle.HeaderTemplate>
                <GroupStyle.Panel>
                    <ItemsPanelTemplate>
                        <!--<VariableSizedWrapGrid Orientation="Vertical" Margin="0,0,80,0"/>-->
                        <VariableSizedWrapGrid MaximumRowsOrColumns="8" ItemWidth="180" ItemHeight="240" Orientation="Vertical" Margin="0,0,80,0"/>
                    </ItemsPanelTemplate>
                </GroupStyle.Panel>
            </GroupStyle>
        </local:MyGridView.GroupStyle>
    </local:MyGridView>

そして、以下のコードで選択したアイテムを削除しようとすると:

private void Delete()
{
    var group = SampleDataSource.GetGroup("myGroup");
    foreach (SampleDataItem item in itemGridView.SelectedItems)
    {
        group.Items.Remove(item);
    }
}

ここでApp.gi.csファイルにエラーが発生します

 #if DEBUG && !DISABLE_XAML_GENERATED_BREAK_ON_UNHANDLED_EXCEPTION
        UnhandledException += (sender, e) =>
        {
            if (global::System.Diagnostics.Debugger.IsAttached)     
                global::System.Diagnostics.Debugger.Break();
        };
 #endif

e.メッセージが表示されます:

「含まれている同じストーリーボード内の複数のアニメーションは、単一の要素の同じプロパティをターゲットにすることはできません。」ストリング

では、選択したアイテムを削除するにはどうすればよいですか?

助けてくれてありがとう。

4

2 に答える 2

1

なぜそれが起こっているのか本当に知りたかったのですが、何も見つかりません。しかし、私には解決策があります:

private void Delete()
{
    IList<SampleDataItem> selectedItems = new List<SampleDataItem>();
    foreach (SampleDataItem item in itemGridView.SelectedItems)
    {
        selectedItems.Add(item);
    }
    var group = SampleDataSource.GetGroup("myGroup");
    foreach (SampleDataItem item in selectedItems)
    {
        group.Items.Remove(item);
    }
}

「なぜ」を発見した場合はお知らせください。:)

于 2013-03-11T05:10:52.237 に答える
0

私の前にコンパイラはありませんが、次のようなことを試しましたか:

group.Items.RemoveAll(itemGridView.SelectedItems);

foreach ループの代わりに。SelectedItems と group の間の相互依存関係が問題であることがわかる場合があります (ループの外で削除を行います)。

于 2012-10-10T10:23:07.717 に答える