WPF TabControl - Binding

TabControl provides a ItemsSource property to bind list of items. ItemsSource takes any collection object which implements the IEnumerable interface. We bind TabControl with the List<T> or ObservableCollection<T> list classes. Below is the example TabControl binding with list of MyTabItem class. TabControl Binding Example Create a new MyTab...

Continue Reading

WPF Tab Control - Templates

WPF TabControl provides two templates property for changing the UI for Header and Content area. ItemTemplate - Get/Set DataTemplate for TabItem Header. ContentTemplate - Get/Set DateTemplate for TabItem Content. ItemTemplate ItemTemplate is used for changing the DataTemplate of Header section of TabItem. By default, Header DataTemplate call the ToString meth...

Continue Reading

WPF Tab Control - Selection

TabControl provides two main properties for selection of Items. SelectedItem SelectedIndex TabControl SelectedItem SelectedItem property is used for getting and setting the selected object of WPF TabControl. You bind item list into the ItemsSource property of TabControl and set the SelectedItem property to object which you want to selected first. <Ta...

Continue Reading

WPF Tab Control - FlowDirection

FlowDirection in WPF TabControl is used for setting the content flow direction of UI elements in header and content area.  FlowDirection is an enum which has only two values: LeftToRight (Default) RightToLeft LeftToRight By default, any TabControl set the FlowDirection property to LeftToRight. In this, all the UI controls in header and cont...

Continue Reading

WPF Tab Control - TabStripPlacement

TabStripPlacement is an important propety of TabControl. It is used for setting the Header alignment relative to tab content. You can set below four values in TabStripPlacement. Left Top (Default) Right Bottom I have given all four examples of TabStripPlacement. Left Set header to left position like below: <TabControl x:Name="TabC...

Continue Reading

WPF Tab Control - Close Button

A very common requirement in TabControl is to show a close button (X) near the end of header of each TabItem. We can use ItemTemplate to customize the header section and show a close button (X) at the end of TabItem header. Close Button Example <Grid> <Grid.Resources> <DataTemplate x:Key="CustomHeaderTemplate"> <DockPanel Last...

Continue Reading

C# Reflection Introduction

Reflection in C# is a big topic in itself. I'll summarize a little list of what you can do with reflection. Get currently executing assembly, load assembly, get assembly from type Get classes declared in assemblies Get methods, properties, fields, events, constructors declared in classes Check access modifiers of classes, properties, fields and me...

Continue Reading

C# Reflection - What is Assembly?

Assembly is the main unit in .NET applications. Assembly is a collection of types and its information. There are two types of assemblies: Executable files (EXE) Libraries (DLL) Both type of assemblies includes information about types and its members in its metadata. There are three ways to get Assembly instances: Geting assembly instance from type...

Continue Reading

C# Reflection - Type class

A Type class is an important class in C# reflection. Type class represents class types, interface types, array types, value types, enum types, type parameters, generic type definitions, and open/closed generic types. Type class helps you to find properties, methods, events, fields, and constructors declared in a type. It also provides us the Assembly in which the type is dec...

Continue Reading

C# Reflection - MemberInfo Class

MemberInfo class provides a quick look of all the members in a Type. Below is the same code to get all members of a Type. static void Main(string[] args) { Type type = typeof(Program); foreach(MemberInfo member in type.GetMembers()) { Console.WriteLine(member.Name + ":" + member.MemberType); } } MemberInfo MemberType property MemberInfo prov...

Continue Reading

Join our newsletter and get an occasional email with a technology and DotNetPattern.com news update.