Language - C#/C#(UI - WPF)
C# - WPF MVVM Pattern 기본
KimTory
2021. 11. 26. 11:39
▶ Goal
그래서 이번 포스팅에서는 Winform이 아닌 WPF를 통한 MVVM Pattern으로 Data를 Binding하여 관리 할 수 있게끔
간단한 예제를 포스팅하겠습니다.
▶ Theory
View - 사용자의 눈에 보이는 UI를 담당하는 곳
Model - 데이터 처리(FILEIO나 DB를 사용해 데이터를 저장하는곳)
ViewModel - View를 표현하기 위한 Model로 VIew에서 들어온 데이터를 가공하며 Model과의 통신한후 View단과의 Binding을 통해 데이터를 자동으로 갱신시켜 주는곳
https://frozenpond.tistory.com/53?category=1153471
wpf MVVM패턴을 활용한 간단한 환율계산기 만들기
이번게시글에서는 MVVM패턴을 활용한 환율계산기를 포스팅하겠습니다. 먼저 MVVM 패턴에 대해 알아보겠습니다. MVVM패턴이란 Model-View-ViewModel의 약자로 웹개발에서 흔히 사용하는 MVC패턴에서 컨트
frozenpond.tistory.com
[ Class 구성 ]
MVVM Pattern을 보다 보기 쉽게 폴더별로 Class 구별
[ Model ]
ViewModel과 Data를 서로 주고 받는 역할
[ ViewModel ]
View의 추상화된 형태, View에 보이는 속성들과 바인딩 되어 있어 갱신된 Data를 View가 받을 수 있게 해주는 역할
using MVVMPattern.Model;
using System.Windows;
namespace MVVMPattern.ViewModel
{
public class ViewModel : INotifyPropertyChanged
{
private MainModel mainModel = null;
public event PropertyChangedEventHandler PropertyChanged;
public ViewModel()
{
mainModel = new MainModel();
}
public string Dollar
{
get
{
if(string.IsNullOrEmpty(mainModel.dollar))
{
Won = "0";
}
else
{
int num = -1;
if (int.TryParse(mainModel.dollar, out num))
{
int result = num * 1160; // 현재 환율
Won = result.ToString();
}
else
{
MessageBox.Show("Number Checnk");
Won = "0";
Dollar = string.Empty;
}
}
return mainModel.dollar;
}
set
{
if(mainModel.dollar != value)
{
mainModel.dollar = value;
OnPropertyChanged("Dollar");
}
}
}
public string Won
{
get
{
return mainModel.won;
}
set
{
mainModel.won = value;
OnPropertyChanged("Won");
}
}
protected void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
}
[ MainWindow ]
[ Main U.I ]