WPF MVVMLight TabControl SelectedIndex 不改变 TabItem

WPF MVVMLight TabControl SelectedIndex doesn't change TabItem

我的 TabControl 中有很多 TabItem。 我将 TabControl 与 SelectedIndex 属性 绑定在一起:

<TabControl SelectedIndex="{Binding SelectedIndex}">
    <TabItem Header="TabItem1">
        ...
    </TabItem>
    ...
</TabControl>

我想在 select 第三个 TabItem 时回到第一个 TabItem。所以我正在尝试更改 属性 的 setter :

private int _selectedIndex;
public int SelectedIndex
{
    get { return _selectedIndex; }

    set
    {
        if (value == 2)
            value = 0;

        Set(ref _selectedIndex, value);
    }
}

但 TabItem 仍保留在第三个 TabItem 上。

老实说,我不知道为什么会这样。但是添加 "IsAsync=True" 为我解决了这个问题。

我猜可能是绑定时间太长了。正如这篇 MSDN 文章所建议的 https://msdn.microsoft.com/en-us/library/system.windows.data.binding.isasync(v=vs.110).aspx

<TabControl SelectedIndex="{Binding SelectedIndex, IsAsync=True}">