簡體   English   中英

如何以編程方式移動到WPF TabControl中的下一個選項卡?

[英]How can I programmatically move to the next tab in a WPF TabControl?

我對此有點麻煩。 我需要添加代碼以將TabControl移至下一頁。 我正在使用.Net 4.5中提供的System.Windows.Controls.TabControl 我什至不知道如何枚舉TabPages

MVVM解決方案將是理想的選擇,但是我可以使用解決方案背后的代碼。 我將其更改為自定義行為或其他內容。

謝謝。

您可以在ViewModel中實現INotifyPropertyChanged,然后將SelectedIndex綁定到ViewModel中的一個整數屬性,該屬性會在更改時發出通知,如下所示:

ViewModel:

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>

你可以這樣做:

tabControl1.SelectedIndex++;

或者可以將其綁定到XAML中

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM