我在這方面有點麻煩。我需要添加代碼將TabControl
移動到下一頁。我正在使用.Net 4.5中的System.Windows.Controls.TabControl
。我甚至不知道如何列舉TabPages
。如何以編程方式移至WPF TabControl中的下一個選項卡?
MVVM解決方案將是理想的,但我可以使用解決方案後面的代碼。我會改變它一個自定義的行爲或東西。
謝謝。
我在這方面有點麻煩。我需要添加代碼將TabControl
移動到下一頁。我正在使用.Net 4.5中的System.Windows.Controls.TabControl
。我甚至不知道如何列舉TabPages
。如何以編程方式移至WPF TabControl中的下一個選項卡?
MVVM解決方案將是理想的,但我可以使用解決方案後面的代碼。我會改變它一個自定義的行爲或東西。
謝謝。
你可以在你的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>
你可以這樣做:
tabControl1.SelectedIndex++;
,或者可以在XAML
將其綁定
我假定你的意思是'SelectedIndex'。 'TabIndex'是'Control'的一個屬性。 – Jordan
我當然確實,道歉! – JMK