[c# wpf] xaml에서 class 초기값 설정 방법 이전 dataContext 포스팅에서는 코드 비하인드 단에서 클래스를 정의하고 아래와 같이 값을 초기화 했습니다. //MainWindow.xaml.cs 그리고 초기값을 xaml상에서 출력하기 위해 DataContext에 해당 클래스를 할당한 후 바인딩을 통해 출력을 했습니다. //MainWindow.xaml 하지만 우리가 이번 포스팅에서 다룰 것은 코드 비하인드 단이 아닌 xaml상에서 클래스 초기값을 설정하는 방법입니다. 이 글을 읽기 전 선수 지식 포스팅 [c# wpf] DataContext란? 왜 쓰는 것일까? [c# wpf] StaticResource란? (DynamicResource 비교) 1. 먼저 기존에 작성했던 초기 값을 지우겠습니다. 2. 태그를 지워줍니다. 3. 태그를 생성하고 그 안에.. c#/wpf 2022. 6. 20. [c# wpf] ListView 내용 편집,수정 하는법(with IValueConverter) 1. 무엇을 배우나요? 이번 포스팅에서는 위 그림과 같이 ListView(리스트뷰)에서 특정 컬럼의 내용을 원하는 형태로 변경하는 방법에 대해 알아 보도록 하겠습니다. 먼저 설명을 위한 기본 UI 세팅 및 예제 코드에 대해 설명하겠습니다. 이 글을 읽기 전 선수 지식 [c#] 인터페이스란? [c#] 박싱(boxing), 언박싱(unboxing) 개념과 사용 이유 2. 기본 UI 세팅 //MainWindow.xaml.cs 1) 업체 정보를 담을 클래스 생성(CompanyInfo) 2) CompanyInfo 클래스를 담을 리스트 생성 3) 리스트에 CompanyInfo 객체 담기 4) 객체들이 xaml에 출력되도록 .ItemSource에 리스트를 할당 여기서 CompanyListView는 LitView 엘리.. c#/wpf 2022. 6. 10. [c# wpf] Control Template 란? / 사용방법 (with Style) 이 글을 읽기 전 선수 지식 포스팅 [c# wpf] Style 태그 사용 방법 [c# wpf] Style 상속 방법(with BasedOn) [c# wpf] StaticResource란? (DynamicResource 비교) 왼쪽 그림은 우리가 아는 기본적인 버튼에 빨간 배경색을 칠한 형태입니다. 그런데 우리가 여기서 하고 싶은 것은 태그를 이용해 타원형 형태로 버튼을 바꿔주는 것입니다. 이때 사용하는 것이 바로 ControlTemplate 입니다. 1. Control Template 사용 방법 1) Button.Template로 감싸기 Button 의 모양을 수정 해줄 것임으로 형태의 태그를 먼저 넣어줍니다. 2) 태그 감싸기 다음으로 태그를 넣어 줍니다. 이 안에 우리가 원하는 형태의 도형을 넣어주게.. c#/wpf 2022. 6. 2. [c# wpf] slider(슬라이더) 사용법 (with 데이터바인딩) 이번 포스팅에서는 위와 같이 슬라이드바를 마우스로 움직여 해당 숫자를 아래에 출력 되도록 해보겠습니다. 1. 기본 UI 와 으로 이루어진 아주 간단한 구성입니다. 2. 이벤트 추가 1) 각 엘리먼트의 이름을 지정합니다. 2) 이벤트 추가 슬라이드 변화를 감지하는 속성값으로 ValueChanged를 사용하고 , 저는 sld_ValueChanged라는 이름으로 이벤트 함수를 만들어보았습니다. //MainWindow.xaml.cs(코드비하인드) 이벤트 함수는 위와 같이 작성해줍니다. 하나씩 설명해드리자면, e.NewValue를 통해 변화가 일어날때마다 해당 값을 가져옵니다. 그리고 txt1(TextBox의 이름) Text속성에 해당 값을 할당하기위해 string 형태로 변형해줍니다. 3) min, max 조절.. c#/wpf 2022. 5. 31. [c# wpf] Data Trigger(데이터트리거) 란? / 사용법 (해당 포스팅은 Property trigger 포스팅을 읽고 왔다는 전제로 작성된 글입니다.) 앞서 다루었던 trigger방식이 Property trigger방식이었다면, 이번 포스팅에서 알아볼 trigger는 Data trigger방식입니다. 기능적 차이가 있다면 기존과 다르게 서로 다른 엘리먼트 사이에서 사용하는 방식이죠! 우리 예시에서는 체크 박스를 클릭하면 버튼에 스타일이 적용되는 UI를 만들고 싶습니다. 1) 먼저 아래와 같이 CheckBox에 x:Name을 추가해줍니다. 이 x:Name은 추후 트리거와 연결을 위해 사용됩니다. 2) 다음으로 기존에 작성했던 Trigger태그를 DataTrigger로 수정합니다. 3) 기존에 Property로 설정되어 있는 부분을 바인딩을 적는 부분으로 대체합니.. c#/wpf 2022. 5. 31. [c# wpf] Property Trigger란? / 사용법 (이번 포스팅은 Style 사용법 포스팅을 읽고 왔다는 전제로 작성된 글입니다.) 위와 같이 마우스 커서가 버튼을 지나갈때 스타일을 적용하려면 어떻게 할까요? 이때 사용하는 것이 trigger입니다. 1. trigger 기본 컨셉 trigger는 독립적으로 쓰이기보다 Style을 보조하는 역할로 보셔야 합니다. 그러한 특징때문에 Style태그 안에 넣어주는 형태로 작성을 하는데요. 1) 먼저 우리가 기본적으로 아는 Style태그를 구성해줍니다. 2) 그 안에 태그를 감싼 후, 태그를 넣어줍니다. 이때 Property 속성과 Value 속성을 함께 넣어주는데요. Property는 어떤 이벤트에 반응 할것인지를 정하는 파트입니다. 우리 예시에는 IsMouseOver을 적어 줬습니다. 이건 해당 부분에 마우스.. c#/wpf 2022. 5. 31. [c# wpf] DataContext란? 왜 쓰는 것일까? (해당포스팅은 데이터바인딩 포스팅을 읽고 왔다라는 전제로 작성되었습니다.) 지금까지는 바인딩을 할때 아래와 같은 방식으로, UI Control인 Source 태그와 Target태그를 서로 연결 해주는 식이었습니다. 그런데 지금부터 우리가 하고 싶은건, UI Control이 아닌 우리가 직접 만든 클래스 객체 정보를 xaml태그에서 출력 되도록 하고 싶습니다. 이때 사용하는 것이 DataContext입니다. 이해를 돕기 위해 예를 들어보겠습니다. 1. DataContext 사용 예제 우리가 만든 Person이라는 클래스가 있습니다. 그리고 멤버변수로 "kevin"이라는 값을 가진 Name 프러퍼티가 지정되어있네요. 여기서 우리가 원하는건 xaml에서 Label 엘리먼트 Content 속성에 해당 Name을.. c#/wpf 2022. 5. 31. [c# wpf] Style 상속 방법(with BasedOn) (해당 포스팅은 Style태그 사용법과 이어지는 포스팅입니다.) //MainWindow.xaml 위와 같은 형태의 UI를 구성해보았습니다. 그런데 보시다시피 FontSize 부분에 공통된 코드가 반복되고 있습니다. 지금이야 코드가 길지 않으니 상관 없지만, 코드가 많아질 수록 이러한 비효율성은 극대화가 됩니다. 그렇다면 어떻게 반복을 줄일 수 있을까요? xaml에서도 c#처럼 상속과 같은 기능을 이용할 수 있습니다. Style(스타일) 상속 사용법 먼저 공통되는 부분을 스타일태그로 만들어줍니다. 그리고 x:Key명도 추가해주고요!(여기선 "폰트스타일") 그리고 이전 코드에서 중복되는 부분을 지워줍니다. 다음으로 상속 받을 곳에 각각 BasedOn 이라는 속성값에 {StaticResource Key명} 형.. c#/wpf 2022. 5. 31. [c# wpf] Style 태그 사용 방법 이전 StaticResources 포스팅에서 폰트 컬러를 바꿔 봤는데요. 형태는 비슷하지만 이번에는 태그를 이용한 방법에 대해 알아보겠습니다. 기존 방식과 다르게 다양한 속성을 손쉽게 사용할 수 있다는 점에서 아주 강력하니 꼭 숙지하시면 좋겠습니다. 이번 포스팅에서는 아래와 같이 버튼에 빨간색 배경을 칠하는 것이 목표입니다. 1. 기본 사용방법 1) .Resources안에 Style 태그 추가 2) 어느 곳에 스타일을 적용할지 TargetType 속성을 이용하여 정하기 우리는 Button 부분에 스타일을 적용하고 싶으니까 Button 이라고 적어줍니다. 3) 어떤 속성을 변경할지 정하기 우리는 Background 컬러를 변경하고 싶습니다. 태그를 작성하고 Property에 Background, Value.. c#/wpf 2022. 5. 31. [c# wpf] 데이터바인딩에서 mode 사용법 이전 포스팅에서 데이터바인딩이란 기본적으로 Source에서 특정값을 입력하고, 그 값이 Target으로 출력된다라는걸 배웠습니다. 하지만, 꼭 그렇지는 않습니다. 이게 무슨 말이냐구요? 1) Mode의 기본 개념 아래와 같이 간단한 바인딩을 이용한 ui를 만들어 보았습니다. 당연히 txt2가 Target을 의미하니까 아래와 같이 Source에 값을 입력하고 Target에 나오는 모습이 너무나도 자연스럽죠. 하지만 아래와 같이 Target에서 Source로의 방향도 가능합니다. 이게 어떻게 가능할까요? 우리가 명시적으로 적진 않았지만 Mode 속성으로 TowWay 즉 양방향이 디폴트값으로 설정되어있기 때문입니다. ToWay라는 단어에서 느낄 수 있듯이 Source => Target, Target=> Sou.. c#/wpf 2022. 5. 30. [c# wpf] StaticResource란? (DynamicResource 비교) wpf 공부를 하면서 아래와 같은 StaticResource 라고 적힌것을 보신적이 있으실텐데요. 이 친구의 정체가 무엇인지 알아보도록 하겠습니다. 1. StaticResource 란? 1) background color 변경(기본) 위와 같은 버튼이 있습니다. 우리는 이 버튼의 컬러를 Red로 바꾸고 싶은데요. 어떻게 할까요? Background 속성에 Red컬러를 넣어주면됩니다. 우리가 아는 아주 기본적인 방법인데요. 이외에도 다른 방법이 있다는걸 아시나요? 2) background color 변경(with StaticResource) (1) 먼저 기존에 작성했던 Background 컬러 부분을 지워줍니다. (2) 태그를 만듭니다. 그리고 그 안에 SolidColorBrush 엘리먼트와 속성인 Col.. c#/wpf 2022. 5. 30. [c# wpf] 데이터 바인딩 기초 개념/ 예제 완벽 정리 이번 포스팅에서는 텍스트박스에 텍스트를 입력하면 바로 밑에 해당 내용이 그대로 작성되도록 하고 싶습니다. 이때 바인딩을 사용해볼거에요. 바인딩이라는 단어 뜻에서 유추할 수 있듯이 바인딩은 서로 묶는 기능을 제공합니다. 우리 예시에서는 입력부분인 TextBox와 출력부분인 Label을 함께 묶어, 한쪽에서 변경이 일어나면 그대로 다른 곳에서도 일어나는 효과를 만들어 주었습니다. 1. Target은 뭐고? Source는 뭐야? 우선 바인딩을 이해하기 위해선 목적지를 나타내는 Target과 출발지를 나타내는 Source , 이 두 가지의 개념에 대해서 항상 염두해 두셔야 합니다. 우리 예에서는 출발지를 의미하는 Source는 무엇이고 도착지인 Target은 무엇일까요? 당연히 입력을 하는 부분이 Source .. c#/wpf 2022. 5. 27. 이전 1 2 3 다음