【发布时间】:2015-12-14 16:00:11
【问题描述】:
我正在开发 UWP 应用。 我有一个 listview,其中 listviewitem 有一个复选框和内容。我需要实现的是,当我选中复选框时,相关的 listviewitem 被选中;当我取消选中它时,相关的 listviewitem 将被取消选择。我的列表视图需要支持多选。 这是我的 xmal 代码:
<ListView Grid.Row="1" x:Name="SuggestListView" ItemsSource="{Binding SuggestList}" IsMultiSelectCheckBoxEnabled="True" IsItemClickEnabled="True" SelectionChanged="SuggestListView_SelectionChanged">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<ctl:PersonUserControl HorizontalAlignment="Left"/>
<CheckBox Name="CheckBoxhhh" HorizontalAlignment="Right" IsChecked="{Binding IsSelected, Mode=TwoWay}" Checked="CheckBox_Checked" Unchecked="CheckBox_Unchecked"/>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
<Interactivity:Interaction.Behaviors>
<Core:EventTriggerBehavior EventName="SelectionChanged">
<Core:InvokeCommandAction Command="{Binding SelectSuggestPersonCommand}"/>
</Core:EventTriggerBehavior>
</Interactivity:Interaction.Behaviors>
</ListView>
谁能给我点灯?
【问题讨论】:
-
@Romasz,感谢 cmets。如何使用此属性来解决此问题?你能分享更多细节吗?
-
还有什么问题?为什么你需要管理所有的事件?方式二的绑定方式不够处理变化?
-
ListVIew 有默认的多选视图——如果你设置了
SelectionMode=Multiple,那么你就不需要额外的复选框、事件等等。唯一的区别是默认设计是复选框在左侧,但我认为您应该能够为此编辑项目的样式。 -
@JuanPabloGarciaCoello,当 listviewitem 被选中时,我需要在其他列表中显示选中的项目。有2种用户案例:1。选择ListViewItem时,请检查相关的复选框。这很容易通过将复选框的 IsChecked 绑定到 ViewModel 的 IsSelected 属性来实现。 2. 当用户点击复选框时,应该选择相关项目。当复选框被选中时,如何选择项目(并将其显示在其他列表中)?