SelectedIndex不通过双击更新WPF TabControl,但按下按钮会更新

时间:2018-05-18 12:50:46

标签: wpf binding tabcontrol selectedindex

所以,我有一个标签控件:

<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值的相同方法。但是,选项卡控件仅通过按钮单击更改为不同的索引,双击永远不会更新选项卡控件。

如果我更改了所选索引,请双击数据网格,然后点击按钮,在按钮更改所选索引之前,我可以看到它已被双击更改。

所以,我的问题是,为什么标签控件没有正确更新?两者都以完全相同的方式通知?

0 个答案:

没有答案