2016-12-07 101 views
1

我想在创建选项卡后从选项卡控件中选择选项卡。MVVM从TabControl中选择新选项卡

XAML:

<TabControl SelectedIndex="{Binding SelectedTabIndex}" Name="Items"> 
     <TabControl.Resources> 
     </TabControl.Resources> 
</TabControl> 

MainViewModel:

public int SelectedTabIndex 
{ 
    get 
    { 
     return Items.Count - 1; 
    } 
    set { ; } 
} 
public void AddTab() 
{ 
    var chart = new ChartViewModel(this.eventAggregator, this.windowManager); 
    NotifyOfPropertyChange(() => SelectedTabIndex); 
} 

ChartViewModel是从Caliburn.Micro.Screen继承的类,从Caliburn.Micro.Conductor<Caliburn.Micro.Screen>.Collection.OneActive

MainViewModel继承选项卡被适当地创建,但它后不选择那。

+1

绑定到SelectedIndex的(或类似)是恕我直言,在WPF中的代码味道。使用ItemsSource/SelectedItem来管理选择总是更容易和更清晰。此外,为了更清晰地说明如何以MVVM方式使用TabControl,请参阅我的答案http://stackoverflow.com/a/5651542/1228 – Will

回答

4

更改您的XAML代码来这样的事情,

<TabControl SelectedIndex="{Binding SelectedTabIndex,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Name="Items"> 
     <TabControl.Resources> 
     </TabControl.Resources> 
</TabControl> 
+0

我必须将'set'属性添加到'SelectedTabIndex',但现在它工作:)谢谢。 –