Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions MainDemo.Wpf/Domain/TabsViewModel.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
using System.Collections.ObjectModel;

namespace MaterialDesignDemo.Domain;

internal class TabsViewModel : ViewModelBase
{
public ObservableCollection<CustomTab> CustomTabs { get; }

public CustomTab? SelectedTab { get; set; }

public TabsViewModel() =>
CustomTabs = new()
{
new CustomTab {CustomHeader = "Custom tab 1", CustomContent = "Custom tab 1 content"},
new CustomTab {CustomHeader = "Custom tab 2", CustomContent = "Custom tab 2 content"}
};
}

internal class CustomTab
{
public string? CustomHeader { get; set; }

public string? CustomContent { get; set; }
}
24 changes: 24 additions & 0 deletions MainDemo.Wpf/Tabs.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,10 @@
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:smtx="clr-namespace:ShowMeTheXAML;assembly=ShowMeTheXAML"
xmlns:domain="clr-namespace:MaterialDesignDemo.Domain"
d:DesignHeight="4000"
d:DesignWidth="1920"
d:DataContext="{d:DesignInstance Type=domain:TabsViewModel, IsDesignTimeCreatable=True}"
mc:Ignorable="d">
<StackPanel Margin="0,0,8,8">

Expand Down Expand Up @@ -505,5 +507,27 @@
</materialDesign:Card>
</smtx:XamlDisplay>
</StackPanel>

<TextBlock
Margin="0,15,0,20"
Style="{StaticResource MaterialDesignHeadline5TextBlock}"
Text="Custom items (and DisplayMemberPath)" />

<smtx:XamlDisplay Margin="0,0,0,16" UniqueKey="tabs_with_displaymemberpath">
<materialDesign:Card>
<TabControl
ItemsSource="{Binding CustomTabs}"
SelectedItem="{Binding SelectedTab}"
HorizontalContentAlignment="Left"
DisplayMemberPath="CustomHeader">
<TabControl.ContentTemplate>
<DataTemplate DataType="domain:CustomTab">
<TextBlock Text="{Binding CustomContent}" FontSize="18" Margin="10" />
</DataTemplate>
</TabControl.ContentTemplate>
</TabControl>
</materialDesign:Card>
</smtx:XamlDisplay>

</StackPanel>
</UserControl>
35 changes: 11 additions & 24 deletions MainDemo.Wpf/Tabs.xaml.cs
Original file line number Diff line number Diff line change
@@ -1,28 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using MaterialDesignDemo.Domain;

namespace MaterialDesignDemo
namespace MaterialDesignDemo;

/// <summary>
/// Interaction logic for Tabs.xaml
/// </summary>
public partial class Tabs
{
/// <summary>
/// Interaction logic for Tabs.xaml
/// </summary>
public partial class Tabs : UserControl
public Tabs()
{
public Tabs()
{
InitializeComponent();
}
DataContext = new TabsViewModel();
InitializeComponent();
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -264,7 +264,7 @@
Content="{TemplateBinding Header}"
ContentStringFormat="{TemplateBinding HeaderStringFormat}"
ContentTemplate="{TemplateBinding HeaderTemplate}"
ContentTemplateSelector="{TemplateBinding ContentTemplateSelector}"
ContentTemplateSelector="{TemplateBinding HeaderTemplateSelector}"
Focusable="False"
Opacity=".82"
RecognizesAccessKey="True"
Expand Down Expand Up @@ -462,7 +462,7 @@
Content="{TemplateBinding Header}"
ContentStringFormat="{TemplateBinding HeaderStringFormat}"
ContentTemplate="{TemplateBinding HeaderTemplate}"
ContentTemplateSelector="{TemplateBinding ContentTemplateSelector}"
ContentTemplateSelector="{TemplateBinding HeaderTemplateSelector}"
Focusable="False"
Opacity=".52"
RecognizesAccessKey="True"
Expand Down