μλ
νμΈμ,
C# wpfλ₯Ό μμνμ§ μΌλ§ μλ λ§€μ° κΈ°μ΄μ μΈ μ§λ¬ΈμΌ μ μμΌλ μ°ΎκΈ°κ° λ무 μ΄λ €μ μ§λ¬Έλ립λλ€ γ
νμ¬ MainView μμ ContentControl μ μμ±νμ¬ νλ©΄λ΄μ λͺ¨λ¬μ λμ°λ €κ³ νκ³ μμ΅λλ€.
λͺ¨λ ViewModel μ BasePageViewModel μ μμλ°κ³ μμ΅λλ€.
Caliburn.Micro λ‘ νλ‘μ νΈκ° μμ±λμμ΅λλ€.
μ¬μ©μκ° λ²νΌμ ν΄λ¦μ μλ ν¨μκ° μ€νλκ³
ModalInfo λΌλ μ μ ν΄λμ€μ ViewModel μ μ£Όμ
νκ³ μμ΅λλ€,
public void AddUser()
{
ModalInfo.IsActive = true;
ModalInfo.Title = "μ¬μ©μ μΆκ°";
ModalInfo.Content = new ModalUserDetailViewModel();
}
μλλ MainView μ μμμΌλ‘ ContentControl μ Content λ‘ AddUser μμ μ£Όμ ν Content λ₯Ό λ°μμ€κ³ μμ΅λλ€.
<!-- λͺ¨λ¬ νμ
μμ -->
<Border Background="#66000000" Visibility="{Binding Path=(data:ModalInfo.IsActive), Converter={StaticResource BoolToVisibilityConverter}}" >
<ContentControl MinHeight="440" Content="{Binding Path=(data:ModalInfo.Content)}" />
</Border>
ModalUserDetailViewModel κ³Ό ModalUserDetailView λ κ°μ namespace μ μ‘΄μ¬νμ¬ viewModel μ μ£Όμ νλ©΄ caliburn.micro μμ ν΄λΉ viewmodel μ λ§λ view λ₯Ό λ§€μΉνλ€κ³ μκ³ μμ΅λλ€.
νμ§λ§ νλ©΄μμλ κ°μ²΄λͺ μ΄ ν μ€νΈλ‘λ§ νμλ©λλ€.
ModalInfo.Content μ νμ
μ UserControl λ‘ λ³κ²½νμ¬
ViewModel λμ View λ₯Ό μ£Όμ
νλ κ²½μ°μλ
νλ©΄μ νκΈ°λμ§λ§ ViewModelκ³Ό DataContext μ°λμ΄ λμ§μμ λ°μΈλ©μ΄ μ΄λ£¨μ΄ μ§μ§ μκ³ μμ΅λλ€.
κ΄λ ¨νμ¬ κ³΅λΆν μ μλ μλ£λ μ‘°μΈμ λΆνλ립λλ€ γ
γ
κΈ μ½μ΄μ£Όμ
μ κ°μ¬λ립λλ€.