MVVM κ°μ μμν ν¨ν΄λ μ΄λ ΅μ§λ§
@jamesnet214 μμ€λ₯Ό Clone νλ©΄μ λλκ²μ§λ§
κΈ°μ‘΄μ priism μ λ€λ£¨λ©΄μ μ΄μ μμμ°μλκ² κ°λκ΅°μ
μ λ§νκ² λ€ μ»€μ€ν νμ κ² κ°μλ°
μ΄λ κ² μμ§λ‘ class λΌμ΄λΈλ¬λ¦¬λ₯Ό wpf λͺ¨λμ λ§λ€λ
μ΄λ κ² μμ±λλλ€. κ·Έλ¦¬κ³ μ¬κΈ°μ
csproj νμΌμ
<PropertyGroup>
<TargetFramework>net8.0-windows</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<UseWPF>true</UseWPF>
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
</PropertyGroup>
μ΄λ κ² ν΄μ£Όμ΄μΌ ν©λλ€.
{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
μ΄ κ΅¬λ¬Έμ wpf ν νλ¦Ώμ μ¬μ©νλ©΄ μν΄λ λμ§λ§ ν΄μ€μΌ νμΌμΆκ°μ wpf ν νλ¦Ώμ μ ν κ°λ₯νλΌκ΅¬μ
그리κ³
κ·Έλ¦¬κ³ μ΄λ κ² Properties ν΄λλ₯Ό λ§λ€κ³ μ΄ν리μΌμ΄μ
μμ μ°λ
μ±κ²©μ΄λ 리μμ€ νμΌμ λ£μ΄λμμΌ νκ³
νλ©΄ νλλ₯Ό λ§λ€κΈ°μν΄ μ΄λ κ² λ§μ νμΌμ΄ νμνλ€μ
μ²μμλ μ κ΅¬μ‘°κ° μ΄ν΄κ° μκ°μ ν€λ§€κ³ windows λ λλ체 μ΄λμλκ²μΌ
νλλ° window κ°λ
λ³΄λ€ VIEW κ°λ
μΌλ‘ μ κ·Όνμλκ² κ°λκ΅°μ
public class HomeContent : WPFView
{
public HomeContent()
{
DefaultStyleKey = typeof(HomeContent);
}
λ°λΌνλ€κ³ μ΄λ κ² νμ§λ§ μμ§ν βDefaultStyleKeyβ μ΄κ±΄ 무μμΈμ§ λͺ¨λ₯΄κ² μ΅λλ€ ^^
κ·Έλ¦¬κ³ Theme ν΄λμ
ResourceDictionary λ‘ κ΅¬μ±ν΄λμΌμ
¨λλ° λλ체
μ΄λμ λ§€μΈ content λ₯Ό λλμ§ λͺ°λΌμ ν€λ§Έλλ°
<Style TargetType="views:HomeContent">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="views:HomeContent">
<Grid Style="{StaticResource MainGridStyle}" >
<Grid.RowDefinitions>
<RowDefinition Height="2"/>
<RowDefinition Height="500"/>
<RowDefinition Height="1"/>
<RowDefinition/>
</Grid.RowDefinitions>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
λλ΅ μ΄λ°μμΌλ‘ ν΅μ¬ Nodeμ΄κ³ μ κΈ°μ λμμΈμ νλκ΅°μ
κΈ°μ‘΄μ μ¬κΈ°μ λ²½μ λΆλ§μΉκ²μ΄ μμ μ μ°λ
interative μμ±μ(Loaded μ΄λ²€νΈ κ°μκ²) μ΄λ»κ² μ¨μΌ νλμ§
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:james="clr-namespace:Jamesnet.Windows;assembly=Jamesnet.Windows"
xmlns:feature="clr-namespace:NP.Support.UI.Features;assembly=NP.Support"
xmlns:tray="http://schemas.lepo.co/wpfui/2022/xaml/tray"
xmlns:sys="clr-namespace:System;assembly=System.Runtime"
xmlns:ui="http://schemas.lepo.co/wpfui/2022/xaml"
xmlns:views="clr-namespace:NP.Home.Views
XML μ Processing μ§μμλΌκ³ νλμ xml μ΄λΌ μ μλΏμ§ μκ³
url λ‘ alias λμμ΄μ ν·κ°λ¦½λλ€. μ κ±Έ μ μν λ €λ©΄ μμ properties
μ assemblyinfo.cs μμ νλκ΅°μ;;;
무μλ³΄λ€ generic.xaml
μ΄κ±΄ νμΌμ μμ±νμ§λ§ μ μλ μ μ©λλμ§ λͺ¨λ₯΄κ² μ΅λλ€ ^^
λλ΅ λ°λΌνλ€κ³ νκ³ μλλ° james μν€ν μ³μ
wpfui λ₯Ό μ νλ€κ³ νκ³ μλλ°
Navigation controlμμ λ²½μ λΆλ§μ³€μ΅λλ€.
μ¬κΈ°μ ν΅μ¬μ μ²μμλ κΈ°μ‘΄μ μκ³ μλ prism μ΄λ μΌλ°μ μΈ λ°©μμΌλ‘ κ°λ°ν λ €κ³ νλλ°
μ λ° κ΅¬μ‘°κ° μμ¦ μ΅μ νΈλ λμΈ winui κ°μκ²μΌλ‘ μ΄μ μ΄ μ½λ€κ³ ν΄μ μμ’μ λ¨Έλ¦¬λ‘ ν€λ§€κ³
μμ΅λλ€.
κ·Έλ¦¬κ³ μλ controlλ€μ κ·Έλ₯ κ°λ€ μ°λ€κ° κ° control μμ λ°μ λΆλͺ¨ μμ± νμΈν΄μ
νλνλ deep νκ² λ΄μΌνλμ μ΄ νλλ€μ
κ·Έλ¦¬κ³ μμ§ν 컀μ€ν
λμμΈμ ν λ €λ©΄ νΉμ 컨νΈλ‘€ κ΅¬μ‘°κ° μ΄λ»κ² λμ΄μλμ§
λ€ λΆν΄ν΄μ λ΄μΌ νλλ° μ ^^;; μ λλ©μ΄μ
μ μ΄λ»κ² ν΄μΌν μ§
κ·Όλ° μ generic.xaml μ μ μλ νμΌ μ΄λ¦μ΄λΌ μμ±νλ©΄ μλ μ μ© λλκ²μΈκ°μ. ???
μ ꡬ쑰λ₯Ό λ°λΌνκΈ΄ νμ§λ§ λκ° λμνλ κ·Έλ¦ΌμΌλ‘ ννμ νλ©΄ λ μ΄ν΄κ° μ¬μΈκ² κ°κΈ΄νλ€μ
μ΄λ €μ΄ μ΄μ λ₯Ό μ 리νλ©΄
- κ°λ°λ°©λ²μ΄ μ λ§ λ€μνλ€
- μκ² λκ² μμμΌ νλ€.
- μ?? λκ° μλμ μ©λλκ²μ΄ λ§μμ μ΄μ λ₯Ό μλκ²μ΄ μλλΌ κ·Έλ ꡬλ νλ©΄
μμμνμ μΌλ‘ μκ°ν΄μΌ ν κ²μ΄ λ§μ΅λλ€.