我在ListView的DataTemple中有一个带CheckBox的ListView。向我展示了如何使Command正常工作。我想捕获ListView SelectedItem作为参数传递给Command,但是我不正确...
<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>
答案 0 :(得分:2)
再次查看问题,我认为我现在已经正确理解了。
这是从SelectedItem
获取ListView
的另一种方法
然后在CheckBox
中按如下方式约束CommandParameter
CommandParameter="{Binding ElementName=lvReferralSource, Path=SelectedItem}"
以下内容将传递与CheckBox
CommandParameter="{Binding}"// Full object from the ListView
在与Command Method
相关的CheckBox
中,可以将参数对象转换为正确的类型(ListView ItemSource
中对象的类型)并获得{{1} }和Value