2

これには少し問題があります。次のページに移動するコードを追加する必要がありTabControlます。私はSystem.Windows.Controls.TabControl.Net 4.5で利用できるものを使用しています。を列挙する方法さえわかりませんTabPages

MVVM ソリューションが理想的ですが、コード ビハインド ソリューションを使用することもできます。カスタム動作か何かに変更します。

ありがとう。

4

2 に答える 2

4

ViewModel に INotifyPropertyChanged を実装し、SelectedIndex を 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>
于 2013-10-31T15:53:08.897 に答える
2

あなたはこれを行うことができます:

tabControl1.SelectedIndex++;

またはXAMLでバインドできます

于 2013-10-31T15:52:55.610 に答える