01. CommunityToolkit.Mvvm ๊ฐ์

๐ฆ CommunityToolkit.Mvvm ์ด๋?
- Microsoft ๊ณต์ ๊ฒฝ๋ MVVM ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- WPF, WinUI, MAUI, UWP ๋ฑ์ .NET ๊ธฐ๋ฐ App์์ MVVM ๊ตฌ์กฐ ๊ตฌํ์ ๋์์ค - C# Source Generator(์์ค ์์ฑ๊ธฐ)
- df
- df
- MVVM ๊ตฌํ์ ํ์ํ ๋ฐ๋ณต๋๋ ์์ค ์ฝ๋๋ฅผ ์๋ ์์ฑํด์ค
1๏ธโฃ CommunityToolkit.Mvvm ๊ฐ์
๐ฆ CommunityToolkit.Mvvm ์ด๋?
- Microsoft ๊ณต์ ๊ฒฝ๋ MVVM ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- WPF, WinUI, MAUI, UWP ๋ฑ์ .NET ๊ธฐ๋ฐ App์์ MVVM ๊ตฌ์กฐ ๊ตฌํ์ ๋์์ค - C# Source Generator(์์ค ์์ฑ๊ธฐ)
- MVVM ๊ตฌํ์ ํ์ํ ๋ฐ๋ณต๋๋ ์์ค ์ฝ๋๋ฅผ ์๋ ์์ฑํด์ค
๐ ๊ณต์ ๋ฌธ์
- CommunityToolkit dotnet Git: GitHub Repository

- Microsoft Docs: Microsoft Learn / Learn / .NET / MVVM

โ๏ธ ํ์ต ์ฃผ์ ๋ชฉ์ฐจ

๊ธฐ๋ฅ | ์ค๋ช |
[ObservableProperty] | ์์ฑ ์๋ ๊ตฌํ (prop + OnPropertyChanged) |
[RelayCommand] | ๋ช ๋ น ๊ตฌํ ์๋ ์์ฑ (ICommand + Execute/CanExecute ์๋ํ) |
ObservableObject | INotifyPropertyChanged ๊ตฌํ์ ์ฝ๊ฒ ๋ง๋๋ ๊ธฐ๋ณธ ํด๋์ค |
WeakReferenceMessenger | ViewModel ๊ฐ ๋์จํ ๋ฉ์์ง ํต์ ์์คํ |
Ioc.Default | DI ์ปจํ ์ด๋ ํตํฉ ์ง์ (Microsoft.Extensions.DependencyInjection ๊ธฐ๋ฐ) |
2๏ธโฃ "NuGet ํจํค์ง ๊ด๋ฆฌ์"์์, CommunityToolkit.Mvvm ์ค์นํ๋ ๋ฐฉ๋ฒ

โ ์๋ฃจ์ ํ์๊ธฐ์์ ํ๋ก์ ํธ ์ฐํด๋ฆญ โก Nuget ํจํค์ง ๊ด๋ฆฌ์ ์คํ

โข Nuget ํจํค์ง ๊ด๋ฆฌ์๋ ์ค์น๋ ํจํค์ง ๋ฆฌ์คํธ๋ฅผ ๋ณด์ฌ์ฃผ๋ ํญ์ด ์ต์ด๋ก ๋ณด์ฌ์ง๋ค.

โฃ "์ฐพ๊ธฐ" ํญ์ผ๋ก ์ด๋ํ์ฌ, โค CommunityToolkit.Mvvm ๊ฒ์์ด ์ ๋ ฅ ํ, โฆ ์ต์ ์์ ๋ฒ์ ์ผ๋ก ์ค์นํ๋ค.
3๏ธโฃ ์ค์น๋ ํจํค์ง ํ์ธ ๋ฐฉ๋ฒ
โ๏ธ ๋ฐฉ๋ฒ1. ํ๋ก์ ํธ์ Dependencies >> Packages ์์ ์ค์น๋ ํจํค์ง ํ์ธํ ์ ์๋ค.

โ๏ธ ๋ฐฉ๋ฒ2. .csproj ํ์ผ ๋ด๋ถ ItemGroup์ Package ํญ๋ชฉ์ด ์ถ๊ฐ๋ฉ๋๋ค:

4๏ธโฃ (์ถ์ฒ) "NuGet ํจํค์ง ๊ด๋ฆฌ์ Console"์์, CommunityToolkit.Mvvm ์ค์นํ๋ ๋ฐฉ๋ฒ
โ๏ธ 1. Visual Studio ์์ ํจํค์ง ๊ด๋ฆฌ์ ์ฝ์ ์คํ
๋ฐฉ๋ฒ1. Visual Studio ์๋จ ๋ฉ๋ด์์ ๋๊ตฌ โ NuGet ํจํค์ง ๊ด๋ฆฌ์ โ ํจํค์ง ๊ด๋ฆฌ์ ์ฝ์ ์ด๊ธฐ
๋ฐฉ๋ฒ2. (์ถ์ฒ) Visual Studio์์ ctrl + q ๋จ์ถํค โ Package Manager Console ๊ฒ์

โ๏ธ 2. ํจํค์ง ์ค์น ๋ช ๋ น์ด ์คํ



Install-Package CommunityToolkit.Mvvm

5๏ธโฃ ํ๋ก์ ํธ ํ์ผ ํจํค์ง ์ฐธ์กฐ๋ก, ๋น๋์ ์๋ ์ค์น

<ItemGroup> <PackageReference Include="CommunityToolkit.Mvvm" Version="8.1.0" /> <PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="7.0.0" /> </ItemGroup>
ํ๋ก์ ํธ ํ์ผ์ ์ถ๊ฐํ๋ฉด, ๋น๋์ ์๋ ์ค์น๋๋ค.
๋น๋ํ์ง ์์ผ๋ฉด, ์ฌ์ฉํ ์ ์๋ค.
์์ค์ฝ๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด, ์ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๊ณ ๋น๋ํ ๋ค ์ฌ์ฉ ๊ฐ๋ฅํ๋ค.
๋๊ธ
์ด ๊ธ ๊ณต์ ํ๊ธฐ
-
์นด์นด์คํก
์นด์นด์คํก
-
๋ผ์ธ
๋ผ์ธ
-
ํธ์ํฐ
ํธ์ํฐ
-
Facebook
Facebook
-
์นด์นด์ค์คํ ๋ฆฌ
์นด์นด์ค์คํ ๋ฆฌ
-
๋ฐด๋
๋ฐด๋
-
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
-
Pocket
Pocket
-
Evernote
Evernote
๋๊ธ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.