2013-10-31 2 views
0

나는 이것에 대해 약간의 문제가있다. TabControl을 다음 페이지로 이동하려면 코드를 추가해야합니다. 닷넷 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

에 바인딩 할 수