[C# - WPF] 1. WPF 프로젝트를 처음 시작해보자C#/WPF2021. 11. 10. 20:14
Table of Contents
안녕하세요 반나무입니다.
그래서 WPF, MVVM 어떤건지 대충 이해는 가는데 어떻게 쓰는건가 하면..
1. WPF프로젝트 생성
2. 프로젝트 내부 구조(폴더) 생성
3. 기본 세팅
1. WPF 프로젝트를 생성합니다.
2. 프로젝트 내부 구조(폴더) 생성
Model, VIew, ViewModel 폴더를 생성하고
View에 MainWindow.Xaml을 넣습니다.
(View에 MainWindow를 넣고 프로젝트를 종료 후 다시 열어야 정상작동합니다,)
3. 기본 세팅
1. 64bit로 개발하는것이 웬만해선 좋기 때문에 특별히 32bit개발이 필요한게 아니라면 64bit로 변경합니다.
2. MainViewModel.cs 생성 -> 바인딩 처리
public class MainViewModel : INotifyPropertyChanged
{
#region 이벤트
public event PropertyChangedEventHandler PropertyChanged;
#endregion
#region 생성자
public class MainViewModel()
{
}
#endregion
#region 메소드
public void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
// View
this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
#endregion
}
3. MainView.xaml.cs 처리
public partial class MainWindow : Window
{
private MainViewModel _mainViewModel;
public MainWindow(MainViewModel mainViewModel)
{
_mainViewModel = mainViewModel;
InitializeComponent();
// 바인딩을 위한 권한
this.DataContext = _mainViewModel;
}
}
4. App.xaml 처리
App.xaml에서 startup, exit를 나눠줍니다.
그 이유는 한번에 시작하면 편하긴 하지만 View가 무거워질 수 있으며, 시작과 종료시 메모리 관리가 좋기 때문입니다.
<Application x:Class="WPF_Tutorial.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:CameraWPF"
Startup="Application_Startup"
Exit="Application_Exit">
<Application.Resources>
</Application.Resources>
</Application>
App.xaml
public partial class App : Application
{
private MainWindow _mainWindow;
private MainViewModel _mainViewModel;
private void Application_Startup(object sender, StartupEventArgs e)
{
_mainViewModel = new MainViewModel();
_mainWindow = new MainWindow(_mainViewModel);
_mainWindow.Show();
}
private void Application_Exit(object sender, ExitEventArgs e)
{
}
}
App.xaml.cs
반응형
'C# > WPF' 카테고리의 다른 글
[C# - WPF] View Binding 자동 완성 방법, F12로 ViewModel 타고 가기 (1) | 2024.04.28 |
---|---|
[C# - WPF] 2. MVVM방식으로 바인딩 하기 (0) | 2022.07.15 |
[C# - WPF] MessageBox 아이콘 및 분기 총 정리 (0) | 2022.07.02 |
[C# - WPF] Bitmap위에 도형 그리는 방법 두가지 (0) | 2022.06.16 |
[C# - WPF] 0. WPF와 MVVM란? (0) | 2021.11.10 |
@반나무 :: 반나무_뿌리
3년차 WPF 개발자입니다.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!