2013-10-31 62 views
0

我在這方面有點麻煩。我需要添加代碼將TabControl移動到下一頁。我正在使用.Net 4.5中的System.Windows.Controls.TabControl。我甚至不知道如何列舉TabPages如何以編程方式移至WPF TabControl中的下一個選項卡?

MVVM解決方案將是理想的,但我可以使用解決方案後面的代碼。我會改變它一個自定義的行爲或東西。

謝謝。

回答

3

你可以在你的ViewModel執行INotifyPropertyChanged,然後將selectedIndex綁定到您的視圖模型,其通知上改變整數屬性,這樣的事情:

視圖模型:

public sealed class MainViewModel : INotifyPropertyChanged 
{ 
    private int _tabNumber = 0; 

    public int TabNumber 
    { 
     get { return _tabNumber; } 
     set 
     { 
      if (value == _tabNumber) return; 
      _tabNumber = value; 
      OnPropertyChanged("TabNumber"); 
     } 
    } 

    private void ChangeTab(int tabNumber) 
    { 
     TabNumber = tabNumber; 
    } 

    public event PropertyChangedEventHandler PropertyChanged; 

    [NotifyPropertyChangedInvocator] 
    private void OnPropertyChanged(string propertyName) 
    { 
     PropertyChangedEventHandler handler = PropertyChanged; 
     if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName)); 
    } 
} 

XAML:

<Window x:Class="WpfApplication1.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="MainWindow" Height="350" Width="525" DataContext="{StaticResource MainViewModel}"> 
    <Grid> 
     <TabControl Height="100" SelectedIndex="{Binding TabNumber}" HorizontalAlignment="Left" Margin="108,108,0,0" Name="tabControl1" VerticalAlignment="Top" Width="200"> 
      <TabItem Header="tabItem1" Name="tabItem1"> 
       <Grid /> 
      </TabItem> 
     </TabControl> 
    </Grid> 
</Window> 
+0

我假定你的意思是'SelectedIndex'。 'TabIndex'是'Control'的一個屬性。 – Jordan

+0

我當然確實,道歉! – JMK

0

你可以這樣做:

tabControl1.SelectedIndex++; 

,或者可以在XAML

將其綁定
相關問題