Skip to content
This repository was archived by the owner on Nov 29, 2022. It is now read-only.

Commit 05ad628

Browse files
Swap Pivot for WCT TabView and back with ItemsSource
1 parent 5cc2d88 commit 05ad628

File tree

5 files changed

+74
-49
lines changed

5 files changed

+74
-49
lines changed

TabViewTear/Models/DataItem.cs

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
using Windows.UI.Xaml;
2+
3+
namespace TabViewTear.Models
4+
{
5+
public class DataItem: DependencyObject
6+
{
7+
public string Title
8+
{
9+
get { return (string)GetValue(TitleProperty); }
10+
set { SetValue(TitleProperty, value); }
11+
}
12+
13+
// Using a DependencyProperty as the backing store for Title. This enables animation, styling, binding, etc...
14+
public static readonly DependencyProperty TitleProperty =
15+
DependencyProperty.Register("Title", typeof(string), typeof(DataItem), new PropertyMetadata(string.Empty));
16+
17+
public string Content
18+
{
19+
get { return (string)GetValue(ContentProperty); }
20+
set { SetValue(ContentProperty, value); }
21+
}
22+
23+
// Using a DependencyProperty as the backing store for Content. This enables animation, styling, binding, etc...
24+
public static readonly DependencyProperty ContentProperty =
25+
DependencyProperty.Register("Content", typeof(string), typeof(DataItem), new PropertyMetadata(string.Empty));
26+
}
27+
}

TabViewTear/Strings/en-us/Resources.resw

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -125,18 +125,6 @@
125125
<value>TabViewTear</value>
126126
<comment>Application description</comment>
127127
</data>
128-
<data name="Main_PivotItem1.Header" xml:space="preserve">
129-
<value>Item 1</value>
130-
<comment>First Pivot item title for Main</comment>
131-
</data>
132-
<data name="Main_PivotItem2.Header" xml:space="preserve">
133-
<value>Item 2</value>
134-
<comment>Second Pivot item title for Main</comment>
135-
</data>
136-
<data name="Main_Title.Text" xml:space="preserve">
137-
<value>Main</value>
138-
<comment>Page title for MainPage</comment>
139-
</data>
140128
<data name="ExceptionSettingsStorageExtensionsFileNameIsNullOrEmpty" xml:space="preserve">
141129
<value>File name is null or empty. Specify a valid file name</value>
142130
<comment>File name is null or empty to save file in settings storage extensions</comment>
@@ -145,4 +133,4 @@
145133
<value>This view is being disposed.</value>
146134
<comment>View disposed</comment>
147135
</data>
148-
</root>
136+
</root>

TabViewTear/TabViewTear.csproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,9 @@
9595
<PackageReference Include="Microsoft.NETCore.UniversalWindowsPlatform">
9696
<Version>6.1.7</Version>
9797
</PackageReference>
98+
<PackageReference Include="Microsoft.Toolkit.Uwp.UI.Controls">
99+
<Version>5.0.0</Version>
100+
</PackageReference>
98101
<PackageReference Include="Microsoft.Xaml.Behaviors.Uwp.Managed">
99102
<Version>2.0.0</Version>
100103
</PackageReference>
@@ -123,6 +126,7 @@
123126
<Compile Include="Services\ThemeSelectorService.cs" />
124127
<Compile Include="Services\ViewLifetimeControl.cs" />
125128
<Compile Include="Services\WindowManagerService.cs" />
129+
<Compile Include="Models\DataItem.cs" />
126130
<Compile Include="Views\MainPage.xaml.cs">
127131
<DependentUpon>MainPage.xaml</DependentUpon>
128132
</Compile>

TabViewTear/Views/MainPage.xaml

Lines changed: 22 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -4,42 +4,29 @@
44
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
55
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
66
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
7+
xmlns:controls="using:Microsoft.Toolkit.Uwp.UI.Controls"
78
Style="{StaticResource PageStyle}"
89
mc:Ignorable="d">
910

10-
<Grid x:Name="ContentArea">
11-
<Grid.RowDefinitions>
12-
<RowDefinition Height="48"/>
13-
<RowDefinition Height="*"/>
14-
</Grid.RowDefinitions>
15-
16-
<TextBlock
17-
Grid.Row="0"
18-
x:Uid="Main_Title"
19-
Style="{StaticResource PageTitleStyle}" />
20-
21-
<Pivot
22-
Grid.Row="1"
23-
x:Name="Items">
24-
<PivotItem x:Uid="Main_PivotItem1">
25-
<Grid Background="{ThemeResource SystemControlPageBackgroundChromeLowBrush}">
26-
<!--
27-
The SystemControlPageBackgroundChromeLowBrush background represents where you should place your content.
28-
Place your content here.
29-
-->
30-
31-
</Grid>
32-
</PivotItem>
33-
34-
<PivotItem x:Uid="Main_PivotItem2">
35-
<Grid Background="{ThemeResource SystemControlPageBackgroundChromeLowBrush}">
36-
<!--
37-
The SystemControlPageBackgroundChromeLowBrush background represents where you should place your content.
38-
Place your content here.
39-
-->
40-
41-
</Grid>
42-
</PivotItem>
43-
</Pivot>
44-
</Grid>
11+
<controls:TabView
12+
TabWidthBehavior="Equal"
13+
SelectedTabWidth="200"
14+
x:Name="Items"
15+
ItemsSource="{x:Bind TabItems}">
16+
<controls:TabView.Resources>
17+
<x:Double x:Key="TabViewItemHeaderMinWidth">90</x:Double>
18+
</controls:TabView.Resources>
19+
<controls:TabView.ItemHeaderTemplate>
20+
<DataTemplate>
21+
<TextBlock Text="{Binding Title}"/>
22+
</DataTemplate>
23+
</controls:TabView.ItemHeaderTemplate>
24+
<controls:TabView.ItemTemplate>
25+
<DataTemplate>
26+
<TextBlock Text="{Binding Content}"
27+
Margin="16"
28+
TextWrapping="WrapWholeWords"/>
29+
</DataTemplate>
30+
</controls:TabView.ItemTemplate>
31+
</controls:TabView>
4532
</Page>

TabViewTear/Views/MainPage.xaml.cs

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,35 @@
11
using System;
2+
using System.Collections.ObjectModel;
23
using System.ComponentModel;
34
using System.Runtime.CompilerServices;
4-
5+
using TabViewTear.Models;
56
using Windows.UI.Xaml.Controls;
67

78
namespace TabViewTear.Views
89
{
910
public sealed partial class MainPage : Page, INotifyPropertyChanged
1011
{
12+
ObservableCollection<DataItem> TabItems = new ObservableCollection<DataItem>();
13+
1114
public MainPage()
1215
{
1316
InitializeComponent();
17+
18+
TabItems.Add(new DataItem()
19+
{
20+
Title = "Item 1",
21+
Content = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur a consectetur arcu, eu imperdiet nisl. Nunc id interdum odio. Aliquam non vulputate sem. Proin lacinia, lacus vitae finibus malesuada, leo libero interdum nisl, et dictum justo tortor semper tortor. Phasellus suscipit malesuada ultrices. Cras sodales vel lectus quis mattis. Sed consequat mollis ultrices. Nam eleifend purus sit amet massa mattis facilisis. Donec fringilla convallis nibh eget venenatis. Morbi ac venenatis ex. Integer ultrices velit eget dictum ultrices. Nunc aliquet lectus vitae feugiat varius. Nulla erat nisi, scelerisque ut sollicitudin id, vestibulum at mi. Donec neque velit, ornare consectetur aliquet id, egestas nec sapien. Nulla nec magna sed nunc varius bibendum."
22+
});
23+
TabItems.Add(new DataItem()
24+
{
25+
Title = "Item 2",
26+
Content = "Aliquam fringilla euismod neque sit amet porta. Aliquam et ligula in neque ullamcorper interdum sit amet et magna. Quisque maximus accumsan lorem at rhoncus. Pellentesque mattis, eros non accumsan auctor, libero turpis sodales urna, id porta mi dolor at elit. Interdum et malesuada fames ac ante ipsum primis in faucibus. Donec lacinia leo arcu, vitae malesuada sapien consequat eget. Pellentesque vestibulum interdum convallis. Mauris nulla elit, tempus sit amet enim finibus, suscipit tempor ante. Nullam pulvinar libero sed tincidunt sagittis. Suspendisse potenti. Nulla porta lacinia lacus vel bibendum. Sed sagittis dignissim leo, ac gravida sem mattis pellentesque."
27+
});
28+
TabItems.Add(new DataItem()
29+
{
30+
Title = "Item 3",
31+
Content = "Donec tellus nisl, volutpat vel urna eu, vestibulum sollicitudin sapien. Aliquam libero ex, egestas ut dapibus ullamcorper, mattis non nisl. Pellentesque quis hendrerit nibh. In lobortis placerat interdum. Aliquam et eleifend velit. Nunc ipsum orci, auctor eget eros non, euismod accumsan quam. Nam sit amet convallis est. Integer eget mauris pharetra, fringilla elit a, eleifend felis. Nullam vel ex posuere, blandit tellus nec, lobortis mauris. Nulla rhoncus nisi vel leo condimentum, non cursus lacus tempus. "
32+
});
1433
}
1534

1635
public event PropertyChangedEventHandler PropertyChanged;

0 commit comments

Comments
 (0)