DataGridTemplateColumn с вложенным ComboBox не срабатывает команда

258
11 июля 2017, 18:27

Есть датагрид со столбцом, состоящим из комбобокса :

<DataGridTemplateColumn  Header="Change Status" Width="*" IsReadOnly="False" >
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <ComboBox>
                                <i:Interaction.Triggers>
                                    <i:EventTrigger EventName="SelectionChanged">
                                        <i:InvokeCommandAction Command="{Binding ChangeStatus}"/>
                                    </i:EventTrigger>
                                </i:Interaction.Triggers>
                                <ComboBoxItem Content="Received" IsSelected="True"/>
                                <ComboBoxItem Content="InWork"/>
                                <ComboBoxItem Content="Closed"/>
                                <ComboBoxItem Content="Complited"/>
                            </ComboBox>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>

При смене значения SelectionChanged в боксе должна сработать команда :

public RelayCommand ChangeStatus
    {
        get
        {
            return new RelayCommand(()=> 
            {
               MessageBox.Show//
            });
        }
     }

Не срабатывает. Но если я просто сделаю комбобокс, отдельно от грида то команда выполниться. Подскажите Как исправить ?

Answer 1

Измените Binding в EventTrigger c:

<i:InvokeCommandAction Command="{Binding ChangeStatus}"/>

на:

<i:InvokeCommandAction Command="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type DataGrid}}, Path=DataContext.ChangeStatus}" />

и будет вам счастье )

READ ALSO
Утечка памяти, как бороться C#

Утечка памяти, как бороться C#

Коллеги, здравствуйте! Имею вот такой кодИдет постоянная утечка памяти, поскольку через данное соединение передаются jpeg'ги

230
ember cli pagination как должен работать

ember cli pagination как должен работать

Всем приветПодскажите как правильно установить ember-cli-pagination, что бы он работал

339
Ошибка ajax скрипта в Firefox, который работает в Google Chrome

Ошибка ajax скрипта в Firefox, который работает в Google Chrome

Друзья, портирую расширение из Chrome на FirefoxУ FF много своих особенностей с которыми нужно как то найти общий язык

370