WPF CommandParameter RelativeSource Binding - PullRequest
0 голосов
/ 04 июня 2019

У меня есть ListView с CheckBox внутри DataTemple 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>

1 Ответ

2 голосов
/ 04 июня 2019

Смотря на проблему снова, я думаю, что теперь я правильно понял. Вот другой подход, чтобы получить SelectedItem от ListView Затем в CheckBox я связал CommandParameter, как показано ниже

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

Следующее передаст объект, связанный с CheckBox

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

В Command Method, связанном с CheckBox, вы можете привести объект параметра к правильному типу (тип объектов в ListView ItemSource) и получить значения Value и Active

...