WPF 命令参数 RelativeSource 绑定

WPF CommandParameter RelativeSource Binding

我有一个 ListView,在 ListView 的 DataTemple 中有一个 CheckBox。我看到了如何使 Command 工作。我想捕获 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>

再看看这个问题,我想我现在理解正确了。 这是从 ListView 获取 SelectedItem 的另一种方法 然后在 CheckBox 中我绑定 CommandParameter 如下

CommandParameter="{Binding ElementName=lvReferralSource, Path=SelectedItem}"

下面会传递对象相关的CheckBox

CommandParameter="{Binding}"// Full object from the ListView

在与CheckBox相关的Command Method中可以将参数对象转换为正确的类型(ListView ItemSource中对象的类型)并得到[=的值20=] 和 Active