본문 바로가기

Programming/WPF30

Data Binding #2 - DataContext와 Binding mode xaml에서 DataBinding을 사용하면, 화면에 표시될 값을 어디선가 가져와야한다. 그 값을 제공해 주는 개체가 필요하고, 그 개체를 DataContext를 이용해 지정해준다고 보면 된다. DataContext의 대상은 ElementName을 통해 xaml에 있는 다른 control을 통해 Binding할수도 있으나, User가 정의한 Class로 Binding하는것도 가능하다.(근데 사실 이 목적이 제일 강하다. WPF에서는 View에 해당하는 xaml에서는 화면에 값을 표시해주는 역할, 사용자의 입력을 Backend( Controller or ViewModel)에 전달해주기만 하면 된다. View는 로직에 관여하지 말고, Controller는 화면에 관여하지 않아야 좋다고 생각. 그리고 Data.. 2023. 10. 20.
Data Binding #1 - DataContext연결하기, DataBinding쓰기 WPF에서 데이터를 화면에 표시해줄 필요가 있을까? 당연히 필요하지요. 프로그램이니까요. WPF에서는 Data Binding을 통해서, 화면에 데이터를 표시해줄 수 있다. 입력도 가능하다. 예를 들어, 온도 센서를 읽어와 화면에 표시해주는 다음과 같은 화면이 있다고 하자. 여기서 60이라는 값은 어떻게 xaml에 표시해줄 수 있을까? 잠시 기존의 MFC로 돌아가서 생각해보면, 이를 처리하는 방법은 아마도 다음과 같을것이다. - 화면에 온도 숫자를 표시할 리소스를 미리 담아둔다. 연결된 변수명은 m_txtTemperature 라고 하자. 로직을 처리하는 cpp파일에서, 온도가 변하면 다음과 같이 호출할 것이다. void TemperatureChanged(int newTemperatureValue){ //... 2023. 6. 8.
C#에서 마샬링이 필요한 이유 C#에서 마샬링을 하는 방법은 요기.. https://gomnezip.tistory.com/372 C# 마샬링 - 구조체 C#에서 C++의 DLL을 호출할 경우 데이터를 주고받아야 한다. 그렇게 하기 위해서 여러가지 방법이 있지만, 우선 DLL을 만든 후, DllImport를 사용하여 전달하게 구성되었기에. 그에 맞는 방법으로.. C# gomnezip.tistory.com C#에서 마샬링을 왜 할까? 아니 마샬링(Marshalling)이 뭐지? 우선 마샬링을 검색해보면.. 네이버 사전 링크 : https://en.dict.naver.com/#/entry/enko/5bea9e86d2054c2d9dbf8bd0f2ec28a3 네이버 영어사전 미국/영국식 발음, 여러 종류의 출판사 사전 뜻풀이, 풍부한 유의어/.. 2023. 2. 16.
WPF - DataTemplate 우리가 컨트롤을 만들다 보면.. 가끔은 (아니 사실 거의 매번) UI control을 custom해주어야 한다. WPF에서는 커스텀 컨트롤을 하는 방법은 크게 두가지가 있다. 하나는 MFC시절부터 사용하던 역사적인 방법인(...) 기본 컨트롤을 상속받아서 만드는 방법이 있을 것이다. 이 방법은 입력에 따른 별도의 처리가 필요한 경우라면 사용을 고려하는 것이 좋다. (반드시라고 하기에는 좀 어려운 것이.. event handling을 통한 처리라는 방법도 있으니까. 물론, 이벤트 핸들링이 공통적으로 사용된다면? 고민해볼만 한 방법이 된다.) 우선 그 방법은 다음에 포스팅하도록 하고.. 오늘은 DataTemplate를 이용한 custom control을 만드는 방법에 대해 끄적인다. DataTemplate는.. 2022. 12. 26.
WPF Style #2 전에 작성했던 WPF Style #1에 이어서 작성. 해당 글은 아래 링크 참조 https://gomnezip.tistory.com/446 WPF style. #1 WPF에서 많은 컨트롤들을 사용할 수 있다. 근데, 그 컨트롤들의 배경색이나 끝마감, 텍스트의 폰트 크기등을 미리 정의할 수 있다. (CSS에 대응된다고 생각하면 쉽다.) 스타일의 장점은 1. 화면에 gomnezip.tistory.com WPF에서 Style을 ResourceDictionary에 작성할 수 있다고 했었다. 그 내용 중, 몇가지 추가.. 먼저, 컨트롤들의 스타일에서 중요한 것 중 하나는, Color다. (당연한 이야기를..) Color는 Color라고 이름붙인 노드가 아니라, SolidColorBrush를 사용한다. #01010.. 2022. 11. 17.
WPF style. #1 WPF에서 많은 컨트롤들을 사용할 수 있다. 근데, 그 컨트롤들의 배경색이나 끝마감, 텍스트의 폰트 크기등을 미리 정의할 수 있다. (CSS에 대응된다고 생각하면 쉽다.) 스타일의 장점은 1. 화면에 보이는 UI컨트롤들의 특징을 공통되게 적용할 수 있다. 즉, 일괄 적용이 필요한 것을 해당 style에서 수정하면 된다. (즉, 일이 엄청나게 줄어든다.) 2. 상속이 가능하므로, 상속을 사용하여 일을 더 줄일수 있다. 위와 같이 선언하면 스타일이 만들어진다. BasedOn 은 상속받고자 하는 부모 스타일의 키 이름을 적어주면 된다. (없으면 안써도 된다.) 지금 MyChildStyle은 MyBaseStyle 의 속성을 상속받았다. 그래서, MyChildStyle은 VerticalAlignment는 Top,.. 2022. 11. 11.
728x90