If we are going in programming with WPF, then how we will use controls on our window form. There are some differences in WPF and Windows Forms controls. This problem can be solved being of the ability to host Windows Forms controls in Windows Presentation Foundation.
Here in this article I am going to show this with a example. Here I am using a DataGridView control to show some record from a list. To do this firstly we have to add two reference. The two references are:
- System.Windows.Forms
- WindiwsFormsIntegration
The window.xaml code for this application is:
<Window x:Class="GridViewcontrolinWindowForm.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:wfi="clr-namespace:System.Windows.Forms.Integration;
assembly=WindowsFormsIntegration"
xmlns:wf="clr-namespace:System.Windows.Forms;
assembly=System.Windows.Forms"
Title="GridViewcontrolinWindowForm" Height="500" Width="600"
>
<Grid>
<wfi:WindowsFormsHost Width="450" Height="400">
<wf:DataGridView x:Name="gridView" />
</wfi:WindowsFormsHost>
</Grid>
</Window>
The window.xaml.cs code is:
using System;
using System.Collections.Generic;
using System.Text;
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.Shapes;
namespace GridViewcontrolinWindowForm
{
/// <summary>
/// Interaction logic for Window1.xaml
/// </summary>
///
internal class Employee
{
public Employee(string empname, string empdepartment, string city, string country)
{
this.empname=empname;
this.empdepartment=empdepartment;
this.city = city;
this.country = country;
}
private string empname;
public string Empname
{
get
{
return empname;
}
set
{
empname = value;
}
}
private string empdepartment;
public string Empdepartment
{
get
{
return empdepartment;
}
set
{
empdepartment = value;
}
}
private string city;
public string City
{
get
{
return city;
}
set
{
city = value;
}
}
private string country;
public string Country
{
get
{
return country;
}
set
{
country = value;
}
}
}
public partial class Window1 : System.Windows.Window
{
public Window1()
{
InitializeComponent();
System.Windows.Forms.DataGridView grid = this.FindName("gridView") as System.Windows.Forms.DataGridView;
List<Employee> list = new List<Employee>();
list.Add(new Employee("Aaryan", "Development","Noida","India"));
list.Add(new Employee("HeRehan", "Programmer", "Banglore", "India"));
list.Add(new Employee("Rayan", "CEO", "Mumbai", "India"));
list.Add(new Employee("Sahil", "Manager", "Delhi", "India"));
grid.DataSource = list;
grid.Refresh();
}
}
}
When user run the application the window will look like as:

Figure 1.