Northern Ireland based Beckinridge specialises in Technology, IT, Sales and Management training for the ICT, Corporate, SME and Government Sectors.

  Public Courses
General Training

  On-Site Courses
Tailored Training

  ILM Qualifications
Level 4 & 5 Awards

Articles & Reviews

  Team Building
Activities & Events

  Why Choose Us?
Our Clients
Our Services
Quality and Expertise
Financial Support
Course Tailoring
Our Support Team
Talk To Us

Join Mailing List

 Developing Windows applications using C# and WPF

  Course Code: GN-301   Duration: 5 Days 

This 5 day course covers the C# language and its use for Windows desktop applications using the Windows Presentation Foundation (WPF). Developing for WPF is interesting as it actually uses 2 languages simultaneously - C# for the functionality and XAML for the UI design. A shorter course can be provided if you are already familiar with C#, and several optional modules can be added to match your particular requirements.


 Course Outline


Introducing C# and .Net

  • Layout and white space.
  • Blocks, braces and semicolons.
  • Classes, methods and the use of '.'.
  • The Main method.
  • Basic input and output.
  • Compiling and running programs.

Introduction to WPF

  • What WPF is for.
  • XAML.
  • The technologies.
  • The tools.
  • Patterns and Model-View-ViewModel.
  • WPF vs Windows Store Apps.

Designing a user interface with XAML

  • What XAML is.
  • XAML details.
  • Designing a window.
  • Basic controls.
  • Properties and attached properties.
  • Panels and layouts.
  • Code-behind and simple events.

Using Variables

  • Variable types and sizes.
  • Integer versus floating point.
  • Local variables and scope.
  • Declaring and initializing variables.
  • Operators.
  • Pre and post increment operators.
  • Strings and characters.
  • Special characters and escape sequences.
  • Verbatim literal strings.

Control Flow

  • if and else.
  • The for loop.
  • while and do while.
  • The switch statement.
  • Conditional expressions.
  • Writing and calling methods.
  • Passing arguments.
  • Returning values.
  • Method overloading.

Object Oriented Programming

  • Data types and nullable types.
  • Value and reference types.
  • Implicit types.
  • Classes, objects and the use of 'new'.
  • Encapsulation.
  • The heap and the stack.
  • Strings and StringBuilders.
  • Collections, generics and concurrency.
  • Arrays, jagged arrays and Indexers.
  • Namespaces, 'using' and assemblies.
  • Attributes.


  • Inheritance and the use of 'virtual' and 'override'.
  • Benefits of inheritance.
  • Hiding and the other use of 'new'.
  • Abstract classes.
  • Constructors and initialization.
  • Casting, 'as' and 'is'.


  • The benefits of interfaces.
  • Interfaces vs classes.
  • Defining and implementing an interface.
  • Common interfaces and the ubiquitous IEnumerable.
  • Sorting and finding.

Exception Handling

  • How exception handling works.
  • try...catch and throw.
  • Handling multiple exception types.
  • try...finally and 'using'.
  • Deriving exception classes.

Files, Streams and Networking

  • The .Net Stream architecture.
  • Streams, Readers and Writers.
  • Serialization and SOAP.
  • The Socket and Tcp classes.
  • Basic network communication.
  • Clients and multithreaded servers.

Event handling

  • The event architecture.
  • bubbling and routed events.
  • Tunnelling and preview events.
  • Commands.

Containers and layouts

  • Panels.
  • Canvas and absolute positioning.
  • Wrap and Stack Panels.
  • Margins, sizes and alignment.
  • DockPanel.
  • Grid and UniformGrid.
  • Splitting and scrolling.
  • Viewbox.
  • Controls as containers.

WPF styles and controls

  • User controls.
  • How WPF controls work.
  • Drawing and presentation.
  • Resources and resource dictionaries.
  • Defining and using styles.
  • Dynamic resources.
  • Control templates.
  • Triggers and animation.


  • 'Built-in' commands.
  • Binding to commands.
  • Application defined commands.
  • Using Prism and DelegateCommand.
  • Using MVVM Light and RelayCommand.

Data binding

  • Connecting controls.
  • Binding to objects.
  • Binding modes.
  • Syntax alternatives.
  • Using data contexts.
  • Events and updating.
  • Property change notifications.
  • Observable and binding collections.
  • Data templates.
  • Formatting.
  • Using Prism and BindableBase.

Binding techniques

  • Data grids and column design.
  • Items controls and lists.
  • Enhancing data templates.
  • Value converters.
  • XAML namespaces and object creation.
  • Binding multiple properties.
  • Validation and error handling.
  • Custom validation rules.

Model View View-Model (MVVM)

  • The architecture.
  • Separating the View and the View Model.
  • Creating the ViewModel from XAML.
  • View first and View Model first.
  • Views and data templates.
  • Selection controls and enums.
  • Dialogs.
  • Using Multiple View/ViewModels.
  • Building flexible user interfaces using user controls and regions.
  • Application controllers and singletons.

LINQ and databases

  • Binding to data.
  • Databases and POCOs.
  • Using Entity Framework.
  • Using LINQ in general programming.
  • LINQ, binding and data.
  • Hierarchy and relationships.
  • Hierarchical data templates.


  • async and await.
  • Parallel execution.
  • Parallel For and ForEach.
  • Tasks, threads and the thread pool.
  • Controlling and synchronizing tasks and threads.
  • .Net 4 synchronization mechanisms.
  • Monitors.
  • Asynchronous methods in .Net. Using callbacks.
  • Cross-thread calls and the user interface.

Using Windows Forms

  • Using Windows Forms from WPF.
  • Using WPF from Windows Forms.
  • Compatibility considerations.
  • Integrating existing application code.


  • Shapes and colours.
  • Designing a visually interesting user interface.
  • Creating graphics dynamically.
  • Bitmaps and images.

Optional - Introducing the 3rd dimension

  • Coordinate systems and geometry.
  • The ubiquitous triangle.
  • Cameras and lighting.
  • Models, meshes and materials.
  • Building shapes.
  • Practical examples.

Advanced Language Features

  • Optional and named parameters.
  • Delegates.
  • Anonymous methods and lambda expressions.
  • Memory management and the workings of the garbage collector.
  • Calling legacy and unmanaged code.
  • Using unsafe code.
  • The Marshal and IntPtr types.
  • Operator overloading and indexers.

© Beckinridge Ltd.

Privacy Policy | Quality Policy

Site by redrhino

Beckinridge specialises in Technology, IT, Sales and Management training for the ICT, Corporate, SME and Government Sectors in Northern Ireland.
Privacy Policy | Capability, Improvement, Through Training & Development