WPF CommandParameter RelativeSource绑定

时间:2019-06-03 22:34:27

标签: wpf command commandparameter

我在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>

1 个答案:

答案 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