【发布时间】:2019-06-03 22:34:27
【问题描述】:
我在 ListView 的 DataTemple 中有一个带有 CheckBox 的 ListView。我被展示了如何使命令工作。我想捕获 ListView SelectedItem 作为参数传递给命令,但我没有正确...
<ListView x:Name="lvReferralSource" ItemsSource="{Binding ReferralObsCollection}" Style="{StaticResource TypeListViewStyle}">
<ListView.ItemTemplate>
<DataTemplate>
<Grid Width="200">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<CheckBox x:Name="ckbReferralIsChecked" Content="{Binding Value}" IsChecked="{Binding Active}" Style="{StaticResource CheckBoxStyleBase2}"
Command="{Binding DataContext.CheckBoxIsChecked, RelativeSource={RelativeSource AncestorType=ListView}}"
CommandParameter="{Binding RelativeSource={RelativeSource AncestorType=ListView}, Path=SelectedItem}">
</CheckBox>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
【问题讨论】:
-
在您的情况下,所选项目是复选框项目,不是吗,因为只有复选框作为列表视图项目存在,如果您这样做,它将通过复选框的内容作为参数
CommandParameter="{Binding RelativeSource={RelativeSource Self},Path=Content}" -
@mjordan:如果选择了一个项目,您当前的绑定应该可以工作。但是,您为什么不简单地绑定到 current 项,而不管它是否实际被选中?
CommandParameter="{Binding}". -
我也是这么想的,但我认为由于他有 2 列,他计划稍后在那里添加其他内容,例如,如果从列表中选择复选框变为启用
标签: wpf command commandparameter