2016-12-07 141 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',但現在它工作:)謝謝。 –