[英]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.