我有这个代码:
<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(使用前将#替换为@)