iwindfree

[MAUI 활용] BookStore 만들기 (9) – ItemTemplate, DataTemplate

이번 포스팅에서는 BookStore 의 View 개발을 더 진행하기 전에 간단히 ItemTemplate 과 DataTemplate 에 관해서 알아보도록 하겠습니다.  ItemTemplate과 DataTemplate는 XAML에서 컬렉션 데이터를 시각적으로 표현할 때 사용되는 중요한 개념입니다. 이 둘은 주로 ListView, CollectionView, ItemsControl 같은 컨트롤에서 활용되며, 컬렉션의 각 항목이 어떻게 보여질지를 정의합니다. ItemTemplate [CollectionView 의 ItemTemplate] 위 예시에서 즉, ItemTemplate은 컬렉션의 각 아이템이 어떻게 렌더링될지를 정의하는 역할을 합니다. DataTemplate DataTemplate은 데이터 […]

[MAUI 활용] BookStore 만들기 (8) – Book List 페이지 만들기 Part2

이제 실제 페이지에 도서 정보를 조회하는 기능을 추가해 보겠습니다. 이 페이지는 책 목록을 불러와서 화면에 보여주는  역할을 합니다. 페이지 상단에는 책 목록이 CollectionView를 통해 표시되며, 사용자가 Get Books 버튼을 클릭하면 BookListViewModel 에 있는  LoadBooksCommand가 실행되어 Books 컬렉션에 데이터를 로드합니다. 로딩이 완료되면  View 에서는 자동으로 데이터 변경을 감지하여 화면에 데이터를 표시하며, 각 항목은 책의 ID와 제목을 나란히

[MAUI 활용] BookStore 만들기 (7) – Book List 페이지 만들기 Part1

이제 본격적으로 도서 리스트를  조회할 수 있는 View(페이지) 를 만들어 보겠습니다. 혹시 MAUI 에서 사용하는 DataBinding 개념에 익숙치 않으면 데이터바인딩에 대한 이전 포스팅을 참고하시기 바랍니다. [MAUI 기본] 데이터바인딩 – 기본 개념 우선 MainPage.xaml 파일을 열어서 아래와 같이 namespace 와 DataType 을 정의합니다 . 나머지 부분은 모두 삭제합니다.   [MainPage.xaml] 추가된 부분은 아래와 같습니다.  이 부분은 XAML

[MAUI 활용] BookStore 만들기 (6) – 의존성 주입

NET MAUI에서의 의존성 주입(Dependency Injection) 은 응용 프로그램의 컴포넌트 간 결합도를 줄이고, 객체 간 의존성을 효율적으로 관리하는 중요한 디자인 패턴입니다. .NET MAUI는 기본적으로 이 패턴을 지원하여, 서비스나 뷰 모델을 쉽게 주입하고 관리할 수 있게 해줍니다. 의존성 주입은 .NET Core와 동일한 방식으로 작동하며, 대부분의 .NET 애플리케이션에서 사용하는 서비스 등록과 동일한 메커니즘을 따릅니다. 의존성 주입의 핵심 개념 의존성을 주입하는

[MAUI 활용] BookStore 만들기 (5) – BookListViewModel 만들기

이제 본격적으로 BookStore 에서 사용할 ViewModel 을 만들어 보겠습니다. 이번에 만들 ViewModel 은 도서 리스트를 보여주는 페이지에서 사용할 예정이기 때문에 BookListViewModel 로 만들려고 합니다. BookListViewModel 은 이전 강의에서 만들었던 BaseViewModel 을 상속받습니다.  도서 리스트를 제공할 것이기 때문에 도서 리스트를 검색해오는 기능이 필요합니다. 이전 강의에서 BookService 라는 클래스를 만들었으며 해당 클래스는 도서 리스트를 제공하는 기능을 갖고

[MAUI 활용] BookStore 만들기 (4) – BaseViewModel 만들기

이전 포스트에서 우리는 Book, BookStore 에 대한 Model 클래스를 생성했습니다. 이제 Book 과 BookStore 에 관련한 ViewModel 을 만들 차례입니다. 앞서 MVVM 패턴을 쉽게 적용하기 위해서 Community Toolkit 을 설치했습니다. 우선 처음에는 해당 ToolKit 을 사용하지 않고 ViewModel 을 만들어 보겠습니다.  MVVM에서 뷰모델을 만들 때는  INotifyPropertyChanged라는 인터페이스를 상속받게 됩니다.  INotifyPropertyChanged 인터페이스는 .NET에서 데이터 바인딩을 지원하기 위해 사용되는

[MAUI 활용] BookStore 만들기 (3) – Model 과 Service 만들기

이제 프로젝트를 생성했고 본격적으로 BookStore 앱을 개발하기 위한 작업을 진행하겠습니다. BookStore 앱은 도서 정보에 대한 간단한 CRUD 기능을 제공할 예정입니다. 이를 위해서 간단히 책에 대한 정보를 갖고 있는 Model 클래스를 생성하겠습니다.  그리고, 서점을 표현하는 Model 클래스도 생성하겠습니다.  이제 간단하게 모든 도서 정보를 제공하는 서비스를 생성하겠습니다. Services 폴더 밑에  BookService 라는 클래스를 생성하겠습니다.  현재는 BookService 에

[MAUI 활용] BookStore 만들기 (2) – Community Toolkit 설치

MVVM 패턴을 사용하기 위해서는 MVVM Toolkit 라이브러리를 설치하는 것이 좋습니다. 물론, 이러한 라이브러리 없이 모두 직접 코딩을 통해서 구현을 할 수도 있지만, 코딩해야 할 양도 만만치 않고 신경써야 할 부분도 많습니다. 다행히 시중에는  MAUI 를 통해서 앱을 개발할 때 MVVM 패턴을 쉽게 구현할 수 있도록 도와주는 라이브러리들이 존재합니다. 여기에서는 그 중에서 Microsoft 가 제공하는 “Community

[MAUI 활용] BookStore 만들기 (1) – 프로젝트 생성

이번 포스팅부터는 몇차례에 걸쳐  MAUI 를 활용하여 아주 간단한 BookStore 앱을 만들어보겠습니다. MAUI 에 대한 기본 구조를 파악하는데 도움이 될 것이라고 생각됩니다. 이번  글에서는 신규로 MAUI 프로젝트를 생성하고 기본 패키지 구조까지 생성하도록 하겠습니다.  해당 과정은 VisualStudio 2022 와 .NET 8 을 이용하였습니다. . 새 프로젝트 생성 신규프로젝트를 선택하고 프로젝트 형식을 “.NET MAUI 앱” 으로 선택합니다.

[MAUI 기본] 데이터바인딩 – Compiled Binding

이번에는 Compiled Binding 에 대해서 알아보도록 하겠습니다.   Compiled Binding의 주요 특징 Compiled Binding 사용법 .NET MAUI에서 Compiled Binding을 사용하려면, XAML에서 x:DataType 또는 x:Type 마크업 확장을 명시적으로 설정해야 합니다. 이 속성은 XAML 바인딩에서 사용할 데이터의 타입을 컴파일러에 알려줍니다. 컴파일된 바인딩 표현식은 소스 속성에서 값을 가져와 마크업에서 지정한 타겟 속성에 값을 설정하는 컴파일된 코드를 생성합니다. 또한, 바인딩 표현식에 따라 소스 속성의 값이 변경되면 이를 관찰하여 타겟