티스토리 뷰

반응형

WPF 애플리케이션을 개발할 때 3rd party 컨트롤을 사용해서 디자인과 성능을 향상시키게 됩니다. Telerik, DevExpress, GrapeCity 등 여러회사들의 컨트롤이 있는데, 그 중에 Infragistics의 WPF 컨트롤에 대해서 살펴 보려고 합니다.

 

WPF Ultimate UI | WPF Application & WPF Components | Infragistics

 

WPF Ultimate UI | WPF Application & WPF Components | Infragistics

Ultimate UI for WPF is a complete library of WPF user interface (UI) controls for building modern Microsoft-Office-inspired desktop applications, including 50+ data charts, grids, and components. Ultimate UI for WPF is the most complete library of enterpr

www.infragistics.com

.NET Framework와 .NET Core 5.0에서도 동일한 Nuget package를 이용해서 사용이 가능하기 때문에, 2번 인스톨을 한다거나 하는 불편한 사항은 없습니다. (타사 제품군들 중에는 .NET Framework버전과 .NET Core 버전을 각각 제공하는 곳도 있습니다. 이 경우 각각 설치를 진행하고 사용에 신경을 써야 합니다.)

 

새 프로젝트 생성

WPF App (.NET)을 선택한 후 Next를 누릅니다.

프로젝트명은 InfragisticsDataGridSample로 입력 후 Create를 누릅니다. 생성된 프로젝트를 선택하고 alt+enter키를 눌러서 프로젝트 속성 창으로 이동합니다.

.NET 5.0으로 변경

Target framework를 .NET 5.0으로 변경합니다. 이 때 .NET 5.0이 표시되지 않는다면, 여기를 눌러서 다운로드를 하시기 바랍니다.

  • 다운로드 하실 버전은 SDK Windows x64 Installer 버전입니다.
  • .NET 5.0으로 WPF 프로젝트를 작업하기 위해서는 Visual Studio 2019 16.8 이상의 버전이 필요합니다.

빌드를 하면, 아래와 같은 경고 메시지가 출력됩니다.

It is no longer necessary to use the Microsoft.NET.Sdk.WindowsDesktop SDK. Consider changing the Sdk attribute of the root Project element to 'Microsoft.NET.Sdk'.

이 문제는 프로젝트를 더블클릭해서 프로젝트 파일 편집 모드로 이동해서 아래와 같이 수정하면 해결됩니다.

<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
=> <Project Sdk="Microsoft.NET.Sdk">

InfragisticsDataGridSample.csproj

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>WinExe</OutputType>
    <TargetFramework>net5.0-windows</TargetFramework>
    <UseWPF>true</UseWPF>
  </PropertyGroup>

</Project>

Install DataGrid NuGet package

프로젝트를 다시 선택한 후 마우스 오른쪽 버튼을 눌러서 컨텍스트 메뉴를 호출하고 Manage NuGet Packages...메뉴를 선택합니다.

Infragistics.WPF.DataGrid로 검색을 하고, Infragistics.WPF.DataGrids.Trial을 선택한 후 오른쪽에 Install 버튼을 눌러서 새로 만든 프로젝트에 추가합니다. (트라이얼 버전으로 30일 무료 사용이 가능합니다.)

화면에 DataGrid 추가

MainWindow.xaml에 namespace와 코드를 추가합니다.

xmlns:igDP="http://infragistics.com/DataPresenter"
<Grid>
    <igDP:XamDataGrid x:Name="xamDataGrid"/>
</Grid>

Person 모델 추가

    public class Person
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public bool Sex { get; set; }
        public int Age { get; set; }
    }

DataGrid 컨트롤에 넣기

MainWindow.xaml.cs를 수정합니다.

DataGrid의 기능을 설명하는 포스팅이기 때문에 MVVM Pattern적용은 하지 않았습니다. 추후 필요하면 추가할 예정입니다.
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();

            Init();
        }

        private void Init()
        {
            var list = new List<Person> 
            {
                new Person{ Id = 1, Name = "kaki104", Age = 11, Sex = true},
                new Person{ Id = 2, Name = "kaki105", Age = 22, Sex = false},
                new Person{ Id = 3, Name = "kaki106", Age = 33, Sex = true},
                new Person{ Id = 4, Name = "kaki107", Age = 44, Sex = false},
                new Person{ Id = 5, Name = "kaki108", Age = 55, Sex = true},
                new Person{ Id = 6, Name = "kaki109", Age = 66, Sex = false},
                new Person{ Id = 7, Name = "kaki100", Age = 77, Sex = true},
                new Person{ Id = 8, Name = "kaki101", Age = 88, Sex = false},
                new Person{ Id = 9, Name = "kaki102", Age = 99, Sex = true},
            };
            xamDataGrid.DataSource = list;
        }
    }

결과

소스

kaki104/InfragisticsDataGridSample (github.com)

반응형
댓글