Primary WinForms APIs:
TabControlTabPagePrimary Avalonia APIs:
TabControl| WinForms | Avalonia |
|---|---|
TabControl.TabPages |
TabControl.ItemsSource |
TabPage.Text |
ItemTemplate header binding |
| active tab by index/object | SelectedIndex/SelectedItem binding |
WinForms C#:
var tabs = new TabControl();
tabs.TabPages.Add(new TabPage("Customers") { Controls = { new TextBox { Dock = DockStyle.Fill } } });
tabs.TabPages.Add(new TabPage("Orders") { Controls = { new DataGridView { Dock = DockStyle.Fill } } });
Avalonia XAML:
<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vm="using:MyApp.ViewModels"
x:DataType="vm:WorkspaceViewModel">
<TabControl ItemsSource="{CompiledBinding Documents}"
SelectedItem="{CompiledBinding ActiveDocument}">
<TabControl.ItemTemplate>
<DataTemplate x:DataType="vm:DocumentViewModel">
<TextBlock Text="{CompiledBinding Title}" />
</DataTemplate>
</TabControl.ItemTemplate>
<TabControl.ContentTemplate>
<DataTemplate x:DataType="vm:DocumentViewModel">
<ContentControl Content="{CompiledBinding ContentViewModel}" />
</DataTemplate>
</TabControl.ContentTemplate>
</TabControl>
</UserControl>
using Avalonia.Controls;
var tabs = new TabControl
{
ItemsSource = viewModel.Documents,
SelectedItem = viewModel.ActiveDocument
};
PropertyChanged.