C# 如何使用SelectionMode=Multiple从GridView获取选定控件
我有这样一个GridView:C# 如何使用SelectionMode=Multiple从GridView获取选定控件,c#,gridview,win-universal-app,windows-10-mobile,visual-studio-2015,C#,Gridview,Win Universal App,Windows 10 Mobile,Visual Studio 2015,我有这样一个GridView: <GridView x:Name="list" ScrollViewer.VerticalScrollBarVisibility="Hidden" SelectionChanged="list_SelectionChanged" ItemsSource="{x:Bind Wallpapers}" SelectionMode="Multiple"> <GridView.ItemTemplate> <DataTem
<GridView x:Name="list" ScrollViewer.VerticalScrollBarVisibility="Hidden" SelectionChanged="list_SelectionChanged" ItemsSource="{x:Bind Wallpapers}" SelectionMode="Multiple">
<GridView.ItemTemplate>
<DataTemplate x:DataType="data:ImageItem">
<StackPanel>
<Image FlyoutBase.AttachedFlyout="{StaticResource ImageMenuFlyout}" Width="150" Height="90" Source="{x:Bind img}" Tag="{x:Bind TagIndex}" Holding="Image_Holding" Tapped="Image_Tapped"/>
<Image Source="used.png" Height="15" Margin="0,-15,0,0" HorizontalAlignment="Left" Width="44" Visibility="{x:Bind Used, Mode=OneWay}"/>
</StackPanel>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
我需要使用GrifView的OnSelectionChanged方法查看第二个图像控件的可见性
我之所以需要它,是因为如果用户选择了至少一个第二个图像控件可见性为“可见”的项目,我必须启用一个按钮。尝试重新创建您的示例 我假设您有一个名为
ImageItem
的类。我仅使用Used
属性创建了一个:
public class ImageItem
{
public Visibility Used { get; set; }
}
我的视图与您的视图基本相同,我使用了不同的itemsource
名称,只保留在第二个图像
控件的可见性
绑定中:
<GridView x:Name="list" ScrollViewer.VerticalScrollBarVisibility="Hidden" SelectionChanged="List_OnSelectionChanged" ItemsSource="{x:Bind Items}" SelectionMode="Multiple">
<GridView.ItemTemplate>
<DataTemplate x:DataType="local:ImageItem">
<StackPanel>
<Image Width="150" Height="90" />
<Image Height="15" Margin="0,-15,0,0" HorizontalAlignment="Left" Width="44" Visibility="{x:Bind Used, Mode=OneWay}" />
</StackPanel>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
因此,如果您至少选择列表中的第一项和/或第二项,则
IsatleAstonivible
将为真;如果您仅选择第三项,则为假。尝试重新创建示例
我假设您有一个名为ImageItem
的类。我仅使用Used
属性创建了一个:
public class ImageItem
{
public Visibility Used { get; set; }
}
我的视图与您的视图基本相同,我使用了不同的itemsource
名称,只保留在第二个图像
控件的可见性
绑定中:
<GridView x:Name="list" ScrollViewer.VerticalScrollBarVisibility="Hidden" SelectionChanged="List_OnSelectionChanged" ItemsSource="{x:Bind Items}" SelectionMode="Multiple">
<GridView.ItemTemplate>
<DataTemplate x:DataType="local:ImageItem">
<StackPanel>
<Image Width="150" Height="90" />
<Image Height="15" Margin="0,-15,0,0" HorizontalAlignment="Left" Width="44" Visibility="{x:Bind Used, Mode=OneWay}" />
</StackPanel>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
因此,如果您至少选择列表中的第一项和/或第二项,则
IsatleAstonivible
为真;如果您仅选择第三项,则为假。非常感谢,您完全理解我的意思。它工作正常。在哪里可以找到该代码的指南(I=>I.Used==Visibility.Visible),我不是很了解它。谢谢。这叫做lambda表达式,它们非常有用。MSDN链接:另一个简单的解释是:它像foreach cicle一样工作,或者这个lambda表达式在速度方面更好?非常感谢,你完全理解我的意思。它工作正常。在哪里可以找到该代码的指南(I=>I.Used==Visibility.Visible),我不是很了解它。谢谢。这叫做lambda表达式,它们非常有用。MSDN链接:另一个简单的解释是:它像foreach cicle一样工作,或者这个lambda表达式在速度方面更好?