Итак, у меня есть элемент управления вкладкой:
<TabControl x:Name="tabControl" Grid.Column="1" BorderThickness="0" Margin="0,-2,0,0" Padding="0" SelectedIndex="{Binding SelectedIndex, Mode=TwoWay, UpdateSourceTrigger=Explicit}">
с набором данных datacontext для модели представления, содержащей:
private int _selectedIndex;
public int SelectedIndex
{
get
{
return _selectedIndex;
}
set
{
_selectedIndex = value;
OnPropertyChanged("SelectedIndex");
}
}
На одной из вкладок у меня есть страницакоторый берет модель представления из элемента управления вкладкой в качестве контекста данных:
<Frame Source="Example.xaml" DataContext="{Binding}" LoadCompleted="Frame_LoadCompleted" DataContextChanged="Frame_DataContextChanged"/>
Внутри этой страницы у меня есть DataGrid, содержащий список элементов с набором событий двойного щелчка:
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseDoubleClick">
<i:InvokeCommandAction Command="{Binding Path=DataContext.OpenExampleCommand, RelativeSource={RelativeSource FindAncestor, AncestorType=Page}}" />
</i:EventTrigger>
</i:Interaction.Triggers>
И кнопка ниже:
Если я перехватываю команду 'OpenExampleCommand', оба вызывают один и тот же метод, который обновляет значение SelectedIndex.Однако элемент управления вкладкой изменяется только на другой индекс с помощью нажатия кнопки, двойной щелчок никогда не обновляет элемент управления вкладкой.
Если я сделаю перерыв в изменении выбранного индекса, дважды щелкните сетку данных и затем нажмите кнопку, пока кнопка не изменила выбранный индекс, я вижу, что он уже был изменен двойным щелчком.
Итак, мой вопрос: почему не корректно обновляется элемент управления вкладками?Оба уведомляют точно так же?