检查ListView中是否存在项目

2024-03-19

我有这个代码:

    <Page.Resources>
            <DataTemplate x:Key="IconTextDataTemplate">
                <StackPanel Orientation="Horizontal" Width="220" Height="60" Background="#FF729FD4">
                    <Border Background="#66727272" Width="40" Height="40" Margin="10">
                        <Image Source="/SampleImage.png" Height="32" Width="32" Stretch="UniformToFill"/>
                    </Border>
                    <StackPanel Orientation="Vertical" VerticalAlignment="Center">
                        <TextBlock Text="{Binding Name}" Margin="10,0,0,0" Width="170" Height="20" TextTrimming="WordEllipsis"/>
                        <TextBlock Text="{Binding Description}" Margin="10,0,0,0" Width="170" Height="20" TextTrimming="WordEllipsis"/>
                    </StackPanel>
                </StackPanel>
            </DataTemplate>
</Page.Resources>
    <ListView x:Name="Name" ItemTemplate="{StaticResource IconTextDataTemplate}"   Grid.Row="6" Margin="40,20,40,10" HorizontalAlignment="Stretch" Foreground="White" SelectionChanged="DoSomething">
                        <ListView.ItemsPanel>
                            <ItemsPanelTemplate>
                                <ItemsWrapGrid MaximumRowsOrColumns="4"/>
                            </ItemsPanelTemplate>
                        </ListView.ItemsPanel>
                    </ListView>

还有另一个ListView与另一个具有相同的属性x:Name。我需要从其中复制项目ListView到另一个。

我有一个代码可以做到这一点,我的问题是如何检查该项目是否在一个中ListView已经复制到第二个了ListView? 谢谢。


如果您只想名称已添加,您可以像这样使用 linq

if(!listView2.Items.Any(item => item.Name == theNameToCheck))
{
     //copy item
}

Contains()需要你有IEquatable由类实现ListViews items:

class Test : IEquatable<Test>
{
    public string Name { get; set; }
    public int OtherProperty { get; set; }

    public bool Equals(Test other)
    {
        return other.Name == this.Name;
    }
}

然后你可以这样做:

if(!listView2.Items.Contains(theItem))
{
     listView2.Items.Add(theItem);
}

除非您确实拥有该类的相同实例,而不是该类的副本(具有相同属性的另一个对象)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检查ListView中是否存在项目 的相关文章

随机推荐