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}">
我的 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}">