выбранный элемент не передан правильно для параметра команды в первый раз - PullRequest
0 голосов
/ 07 декабря 2018

Мне нужно получить выбранный элемент из поля со списком в качестве параметра команды.но в первый раз выбранный элемент принимается как старое значение в параметре команды.

XAML:

<DataTemplate x:Uid="DataTemplate_2">
                        <control:ComboBox x:Uid="ComboBoxType"
                                             x:Name="AstmComboBox"
                                                 HorizontalAlignment="Stretch"
                                                 Height="20"
                                                 FlowDirection="LeftToRight"
                                                 HorizontalContentAlignment="Right"
                                                 ItemsSource="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type control:UserControl}}, Path=DataContext.InclusionTypes}"
                                                 SelectedItem="{Binding Path=ClassName, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
                                                 IsEnabled="{Binding DataContext.IsReclassificationAllowed, RelativeSource={RelativeSource AncestorType=control:DataGrid}}"
                                                 Width="Auto">
                            <i:Interaction.Triggers>
                                <i:EventTrigger EventName="SelectionChanged">
                                    <i:InvokeCommandAction Command="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type control:UserControl}},Path=DataContext.ClassChangedCommand, Mode=OneWay}" 
                                                           CommandParameter="{Binding ElementName=AstmComboBox, Path=SelectedItem}"/>
                                </i:EventTrigger>
                            </i:Interaction.Triggers>
                        </control:ComboBox>
                    </DataTemplate>

в viewmodel У меня есть relaycommand

public RelayCommand ClassChangedCommand
    {
        get
        {
            return _classChangedCommand ?? (_classChangedCommand = new RelayCommand(ClassChanged));
        }
    }
private void ClassChanged(object obj)
    {

        {
            SetSelectedItemsType(obj as string);
        }
    }

Здесь дляв первый раз, когда объект obj получил старое значение элемента поля со списком.

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