Add NOV Schedule control in WPF at runtime

Add NOV Schedule control in WPF at runtime



To get started and host NOV in your WPF application, take a look at: Getting Started with NOV in WPF using only code

The following topic shows how to add a NOV Schedule Widget (control) in WPF at runtime.

1. Reference the NOV Assemblies
Ensure that your application references the following NOV dlls:
Nevron.Nov.Presentation.dll - core NOV portable assembly;
Nevron.Nov.Host.WinBase.dll - base assembly for Windows presentation hosts (WinForm and WPF);
Nevron.Nov.Host.Wpf.dll - presentation host for WPF;
Nevron.Nov.Schedule.dll - assembly for the NScheduleModule;

These assemblies are located in NOV installation folder: C:\Program Files (x86)\Nevron Software\Nevron Open Vision VERSION\Bin\Win

2. When initializing the NOV Application, make sure to create the Schedule module
Open the Program.cs file and use the following code:

using Nevron.Nov;
using Nevron.Nov.Windows;
using Nevron.Nov.Schedule;
using System;
 
namespace WpfApplication1
{
    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            // create the application
            App app = new App();
 
            // Apply license for redistribution here. You can skip this code when evaluating NOV.
            NLicenseManager.Instance.SetLicense(new NLicense("LICENSE KEY"));
 
            NModule[] modules = new NModule[] {
                  // TODO: Create modules here
                  NScheduleModule.Instance
            };
            // install Nevron Open Vision for WPF
            NNovApplicationInstaller.Install(modules);
            // run the application main window
            app.Run(new MainWindow());
        }
    }
}

3. Create the Schedule and add an appointment
Open the MainWindow.xaml.cs file and use the following code to create the Schedule:

using Nevron.Nov.Windows;
using Nevron.Nov.Schedule;
using System.Windows;
using System;
 
namespace WpfApplication1
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
 
            // Set window size
            this.Width = 620;
            this.Height = 300;
 
            // Create a simple schedule
            NScheduleView scheduleView = new NScheduleView();
 
            NSchedule schedule = scheduleView.Content;
 
            DateTime today = DateTime.Today;
            schedule.ViewMode = ENScheduleViewMode.Day;
 
            // Add an appointment
            schedule.Appointments.Add(new NAppointment("Travel to Work", today.AddHours(2.0), today.AddHours(4.5)));
 
            // create NOV host
            NNovWidgetHost<NScheduleView> host = new NNovWidgetHost<NScheduleView>(scheduleView);
            Content = host;
        }
    }
}

Run the application - it should display a simple window with the Schedule and the new appointment.




Using Visual Basic .NET (VB.NET)
When you create a Visual Basic WPF Application, reference the NOV Assemblies and use the following code in your MainWindow.xaml.vb:

Imports Nevron.Nov
Imports Nevron.Nov.Schedule
Imports Nevron.Nov.Windows
 
Partial Public Class MainWindow
    Inherits Window
    Public Sub New()
        InitializeComponent()
        ' clear all controls from the form
 
        ' TODO: Apply license for redistribution here. You can skip this code when evaluating NOV.
        NLicenseManager.Instance.SetLicense(New NLicense("LICENSE KEY"))
 
        ' Install Nevron Open Vision modules
        Dim modules() As NModule = {NScheduleModule.Instance}
        NNovApplicationInstaller.Install(modules)
 
        ' Set window size
        Me.Width = 620
        Me.Height = 300
 
        ' Create a simple schedule
        Dim scheduleView As New NScheduleView()
 
        Dim schedule As NSchedule = scheduleView.Content
 
        Dim today As DateTime = DateTime.Today
        schedule.ViewMode = ENScheduleViewMode.Day
 
        ' Add an appointment
        schedule.Appointments.Add(New NAppointment("Travel to Work", today.AddHours(2.0), today.AddHours(4.5)))
 
        ' create the host widget
        Content = New NNovWidgetHost(Of NScheduleView)(scheduleView)
    End Sub
End Class


For more information about the NOV Schedule component, take a look at the Help Documentation:
Schedule > Schedule Overview

 
Download Free Trial  Help Documentation
Send Feedback

Article ID: 262, Created On: 8/19/2016, Modified: 9/27/2016