WPF: привязать событие Checkbox IsChecked к моей модели - PullRequest
0 голосов
/ 07 февраля 2019

Итак, у меня есть это ListView с ItemSource моего объекта и ListViewItem:

<GridViewColumn Header="Select" Width="45">
                        <GridViewColumn.CellTemplate>
                            <DataTemplate>
                                <StackPanel Orientation="Horizontal">
                                    <CheckBox Command="{Binding SelectedInterfaceCommand}"
                                              CommandParameter="{Binding IsChecked, RelativeSource={RelativeSource Self}}">
                                    </CheckBox>
                                </StackPanel>
                            </DataTemplate>
                        </GridViewColumn.CellTemplate>
                    </GridViewColumn>

ViewModelBase

public ViewModelBase()
        {
            SelectInterfaceCommand = new SelectedInterfaceCommand(this);
        }

И я пытаюсьчтобы поймать мое CheckBox IsChecked событие внутри моего SelectedInterfaceCommand Command:

public class SelectedInterfaceCommand : ICommand
    {
        public event EventHandler CanExecuteChanged;

        public ViewModelBase ViewModel { get; set; }

        public SelectedInterfaceCommand(ViewModelBase viewModel)
        {
            ViewModel = viewModel;
        }

        public bool CanExecute(object parameter)
        {
            return true;
        }

        public void Execute(object parameter)
        {

        }
    }

А мои CanExecute и Execute никогда не звонили.

Я тоже пытаюсьэтот подход:

Внутри моего класса Object у меня есть это Property:

public bool IsSelected
        {
            get { return isSelected; }
            set
            {
                isSelected = value;
                OnStaticPropertyChanged();
            }
        }

XAML

<GridViewColumn Header="Select" Width="45">
                        <GridViewColumn.CellTemplate>
                            <DataTemplate>
                                <StackPanel Orientation="Horizontal">
                                    <CheckBox                                                
                                        <CheckBox.IsChecked>
                                            <Binding Path="IsSelected" RelativeSource="{RelativeSource AncestorType={x:Type ListViewItem}}"/>
                                        </CheckBox.IsChecked>
                                    </CheckBox>
                                </StackPanel>
                            </DataTemplate>
                        </GridViewColumn.CellTemplate>
                    </GridViewColumn>

И снова этот IsSelected установщик никогда не вызывался.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...