MVVM 패턴 핵심 요약한 줄 요약View와 ViewModel은 타입 수준에서 서로를 참조하지 않아야 한다.이것이 MVVM의 전부입니다. 나머지는 모두 이 원칙을 어떻게 지킬 것인가에 대한 부연 설명입니다.왜 그래야 하는가ViewModel은 View의 추상화입니다. 추상화의 목적은 View가 독립적으로 존재할 수 있도록 하는 것입니다.View가 ViewModel 타입을 알면 → ViewModel 변경이 View에 영향을 줍니다.ViewModel이 View 타입을 알면 → View 변경이 ViewModel에 영향을 줍니다.서로의 타입을 모르고, 속성 간 Binding으로만 연결되어야 양쪽 모두 독립적으로 유지됩니다.안티패턴View가 ViewModel을 직접 생성하거나 타입을 명시하는 경우 // 안 됩..
다시 보면서 하기 위해 Window를 추가 해봅니다. 스타일 선언과 바인딩 버튼에 ControlTemplate을 Border로 교체 여러개의 버튼 넣기 Grid는 전체를 대상으로 하지만 StackPanel은 아닙니다. Grid는 안에 있는 자식 요소를 꽉 채워주지만 StackPanel은 꽉 채우는 개념이 아니기 때문에 Border는 세로 DesiredSize=0이니까 납작해져서 안 보입니다. 그래서 앞에서 했듯이 TextBlock..
Button의 모서리를 둥그스름하게 만들려면 Radius속성을 주어야 합니다. 하지만 WPF의 버튼은 Radius가 없기 때문에 다른 방법을 써야 합니다. User Control만들기눈으로 보면서 작업 하기 위해 일단 User Control을 하나 만듭니다. 버튼에 스타일 매핑UserControl에 Resource로 Style하나 만들어 주고 배경색은 DarkSlateBlue로 합니다. x:Key는 Style1으로 하고 버튼에도 StaticResource로 Style1을 적용 해줍니다. ControlTemplate이제 드디어 주인공인 ControlTemplate이 나옵니다. ControlTemplate은 컨트롤의 '모든 시각적 구조와 모양'을 정의하는 설계도입니..
버튼이 이렇게 기본 값으로 올라가 있으면 요즘은 아무리 잘만든 앱이라도 슥 보고 별로라고 생각을 합니다. 워낙 코드가 쉬워지기도 했으니까요. 그런데 WPF는 현시점 2026년 4월인데 클로드 같은 에이전트가 잘못만드는 것 같습니다. 이게 클로드가 만든건데 단순히 예쁘게 만들어라고 하면 엉뚱하게 자꾸 만들거든요. Border적용하기일단은 앞에서 배운 Border를 적용 해봅니다.아래는 오리지널 코드 입니다. 앞에서 배운 Border를 주는거죠. 일단은 잘 보이게 빨강으로요. 넣었는데 버튼이 많은 화면입니다. 다음과 같이 버튼이 많습니다. 버튼 3개만 적용 했는데 현타 옵니다. 일단 버튼이 많이 남아 있구요 단순히 빨간색 테두리만 쳐놓으면 더 ..
Border Border는 경계죠 멋진 버튼과 제품과 습작을 구분 짓는 경계이기도 합니다. 잘 넣으면 제품이 되고 대충 넣으면 습작이죠. 다음과 같이 ClickMe버튼에 빨간 Border를 넣으려고 했지만 안됩니다. Property Content is set more than once 프로퍼티 속성은 한개밖에 못넣는답니다. 앞에 Resoruces에는 Style도 두개 들어가고 StackPanel은 Button두개에 TextBlock까지 들어가는데 버튼에는 Border하나가 안들어가죠. 그래서 Button에 Border를 넣는 방법은 다음과 같이 Border를 넣고 Button에 있던 Content를 빼고 TextBlock을 넣는 방법이 있습니다. 근데 결과는 테두리를..
이전 글에서 이어지는 포스트 입니다. 사라진 ClickMeClickMe가 사라졌죠? 처음에는 PressMe가 안나오는 줄 알았습니다. 문제는 Grid가 문제였구요 Grid에서 뒤에 나온게 앞에 나온 것을 덮어버린 것이죠. 를 로 바꾸니까 둘다 나오기 시작 했습니다. 버튼 두개에 같은 스타일 적용하기그러면 지금 버튼 두개인데 버튼마다 스타일을 주기 불편하죠 스타일 하나 정해서 쓰고 싶다는거죠. 다음과 같이 버튼의 배경을 Black, Blue로 주는 경우..
요즘 바이브코딩으로 죄다 만들어서 한땀한땀 코딩하는 수요가 많이 줄었습니다. 하지만 고객이 쓸 제품의 디테일을 잡을 때는 결국 인간 손이 필요하구요 숙련자가 딸깍이면 되는거 AI로 한시간쯤 이거 아니고 저렇게고 이게 아니고 저부분이고 이런식으로 설명해서 떡져있지만 돌아가는 코드 하나 얻을 수 있는 경우도 있습니다. 그래서 코딩이 아직 의미가 있구요. UserControl을 만들어야 위지윅으로 보면서 만들 수 있습니다. 익숙하기 전부터 CustomControl로 넘어가면 손에 익히기도 전에 기능으로 추상화로 넘어가니까 어질어질 합니다. UserControl만들기 Margin가장 많이 쓰는 Margin입니다. 버튼의 바깥쪽에 여백을 주는 기능입니다. Background버튼 하나에 스타일을 줄 수 ..
크기 1024*768시작위치 0, 0 using System.Windows;using Microsoft.Extensions.DependencyInjection;using Microsoft.Extensions.Hosting;using KrkTemplateProject.Forms;using KrkTemplateProject.Forms.UI.Views;using KrkTemplateProject.Forms.ViewModels;namespace KrkTemplateProject;public class App : Application{ private IHost? _host; public static IServiceProvider? ServiceProvider { get; private set; } ..
PowerShell에서 git branch가 표시 되도록 기능 추가 하는 방법 주요 기능프롬프트 정보 - 브랜치명 표시 - +2 ~1 -0 형태로 staged/modified/deleted 파일 수 - !2 untracked 파일 수 - ↑2 ↓1 remote와의 ahead/behind 커밋 수 Tab 자동완성 - git ch + Tab → checkout, cherry-pick 등 자동완성 - 브랜치명 자동완성: git checkout + Tab - 원격 브랜치, 태그, 스태시 이름도 자동완성 프롬프트 예시 C:\repo [main ≡ +1 ~2 -0 !3]> - ≡ 동기화됨 - ↑1 1커밋 ahead - ↓2 2커밋 behind posh-git설치Install-Module p..
- Total
- Today
- Yesterday
- 도커티슈박스
- shellscript
- docker container tissue
- Linux
- 싱가폴
- Sh
- 2017 티스토리 결산
- 도커각티슈박스
- docker container whale
- docker container case
- 이직
- 도커컨테이너
- docker container tissue box
- 도커각티슈케이스
- 개발자
- 도커티슈케이스
- docker container
- vim
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |