wlstmddn74의 등록된 링크

키자드에 등록된 총 417개의 포스트를 확인하실 수 있습니다.

Naver Blog

[WPF_DevExpress] Behavior 03.EventToCommand

EventToCommand 클래스는 이벤트를 명령에 바인딩 할 수 있는 Behavior이다. 즉, 설정한 이벤트가 발생할 때 바인딩 된 명령이 이벤트 핸들러처럼 호출된다. 이벤트 지정 EventToCommand를 사용하면 다음 속성 중 하나를 사용하여 이벤트를 지정할 수 있다. EventName : 소스 객체가 이벤트를 제공할 때 사용 <dxe:TextEdit> <dxmvvm:Interaction.Behaviors> <dxmvvm:EventToCommand Command="{Binding LoadedCommand}" EventName="Loaded" /> </dxmvvm:Interaction.Behaviors> </dxe:TextEdit> Event : RoutedEvent 유형으로 연결된 이벤트를 지정할 때 사용 <dxe:TextEdit> <dxmvvm:Interaction.Behaviors> <dxmvvm:EventToCommand Command="{Binding LoadedCo

Naver Blog

[WPF_DevExpress] Behavior 02. 사용자 정의 Behavior

DevExpress.Mvvm.UI.Interactivity.Interaction 클래스는 Behaviors 연결 속성을 구현한다. 이 속성은 읽기 전용이며 Behavior 컬렉션을 포함한다. <TextBox Text="Text"> <dxmvvm:Interaction.Behaviors> <local:ValidationBehavior /> <!--Other Behaviors--> </dxmvvm:Interaction.Behaviors> </TextBox> 모든 Behavior는 Behavior<T> 클래스의 자식이다. T 매개변수는 연결된 컨트롤의 유형을 설정한다. 예를 들어 아래의 Behavior는 TextBox 컨트롤(또는 TextBox 컨트롤에서 파생된 컨트롤)에만 적용할 수 있다. public class ValidationBehavior : Behavior<TextBox> { ... } Behavior<T> 클래스는 Behaviors 컬렉션에 Behavior가 추가되면 내부적으로

Naver Blog

[WPF_DevExpress] Behavior 01. Behavior 메커니즘

Behavior 메커니즘은 시각적 제어 기능을 확장하고 MVVM 패턴을 따른다. 사용자 지정 동작으로 누락된 기능을 구현하고 코드 비하인드 및 중복 코드 없이 애플리케이션의 모든 위치에서 사용할 수 있다. Behavior를 정의하는 일반적인 방법 DevExpress.Mvvm.UI.Interactivity.Interaction 클래스는 Behaviors 연결 속성을 구현한다. 이 속성은 읽기 전용이며 Behavior 컬렉션을 포함한다. Behavior를 사용하려면 XAML의 컬렉션에 배치해야 한다. <TextBox Text="FocusBehavior"> <dxmvvm:Interaction.Behaviors> <dxmvvm:FocusBehavior/> </dxmvvm:Interaction.Behaviors> </TextBox> Behavior는 의존 프로퍼티를 사용자가 설정하거나 바인딩 하여 제공할 수 있다. <ListBox> <dxmvvm:Interaction.Behaviors> <d

Naver Blog

[WPF_DevExpress] Command 02. AsyncCommand

AsyncCommand(비동기 명령)는 시간이 많이 걸리는 작업을 실행해야 하는 경우에 UI를 고정시키지 않고 별도의 스레드에서 동작하도록 한다. 만약 버튼에 시간이 많이 걸리는 작업을 비동기 명령으로 바인딩 하면 버튼 클릭 시 계산 프로세스를 시작하고 버튼이 비활성화된다. 프로세스가 완료되면 버튼이 활성화된다. AsyncCommand 형식 AsyncCommand<T> - Execute 및 CanExecute 대리자가 T 형식의 단일 매개 변수를 허용하는 명령을 지정한다. AsyncCommand - Execute 및 CanExecute 대리자에 매개 변수가 없는 명령을 지정한다. ※ 두 형식 모두 Execute 대리자를 수락하는 생성자와 Execute 및 CanExecute 대리자를 수락하는 생성자를 지원한다. AsyncCommand 생성 AsyncCommand 및 AsyncCommand<T>는 DelegateCommand와 유사하게 생성할 수 있다. Execute 대리자는 Task

Naver Blog

[WPF_DevExpress] Command 01. DelegateCommand

DelegateCommand는 System.Windows.Input.Command 인터페이스를 구현하여 ViewModel에서 Command(명령)을 만드는 데 사용할 수 있다. DelegateCommand는 명령의 Execute 및 CanExecute 논리가 호출될 때 명령에 할당한 메서드(대리자)를 호출한다. DelegateCommand 형식 DelegateCommand<T> : Execute 및 CanExecute 대리자가 T 형식의 단일 매개 변수를 허용하는 명령을 지정한다. DelegateCommand : Execute 및 CanExecute 대리자에 매개 변수가 없는 명령을 지정한다. ※ 두 형식 모두 Execute 대리자를 수락하는 생성자와 Execute 및 CanExecute 대리자를 수락하는 생성자를 지원한다. DelegateCommand 생성 및 사용 DelegateCommandViewModel.cs class DelegateCommandViewModel : View

Naver Blog

[WPF_DevExpress] ViewModel 05.ViewModel 관계(ISupportParentViewModel)

ViewModelBase에서 상속된 ViewModel은 부모-자식 관계로 서로 관련될 수 있다. 이는 ViewModelBase 클래스에서 구현된 ISupportParentViewModel 인터페이스를 사용하여 수행된다. POCO 메커니즘을 사용하는 경우 ViewModelSource 클래스로 POCO 객체를 만들 때 ISupportParentViewModel 인터페이스가 자동으로 구현된다. ISupportParentViewModel 인터페이스는 아래와 같다. public interface ISupportParentViewModel { object ParentViewModel { get; set; } } MainViewModel에서 DetailViewModel을 생성할 때, ISupportParentViewModel.ParentViewModel 속성을 사용하여 MainViewModel을 DetailViewModel에 전달할 수 있다. 이렇게 하면 DetailViewModel에서 Main

Naver Blog

[WPF_DevExpress] ViewModel 04.ViewModel간에 데이터 전달(ISupportParameter)

ViewModelBase 클래스는 ISupportParameter 인터페이스를 구현한다. 이 인터페이스는 초기 데이터를 ViewModel에 전달하는 데 사용할 수 있는 Parameter 속성을 제공한다. ※ POCO 메커니즘은 ISupportParameter 인터페이스 구현을 자동으로 생성하지 않지만 POCO ViewModel에서 이 인터페이스를 수동으로 구현할 수 있다. 다음 코드는 MainViewModel에서 DetatilViewModel을 생성할 때 ISupportParameter.Parameter 속성을 설정하는 방법을 보여준다. class MainViewModel : ViewModelBase { public DetailViewModel DetailViewModel { get; private set; } public MainViewModel() { DetailViewModel = new DetailViewModel(); ((ISupportParameter)DetailViewM

Naver Blog

[WPF_DevExpress] ViewModel 03.POCO ViewModel

POCO(Plain Old CLR Objects) ViewModel은 개발 프로세스를 단순화하고 가속화한다. POCO 클래스를 사용하면 다양한 클래스(ViewModelBase, INotifyPropertyChanged 등)를 상속하거나 MVVM 관련 인터페이스를 구현할 필요 없이 바인딩 가능한 속성을 간단한 자동 구현 속성으로 정의할 수 있을 뿐만 아니라 런타임에 명령으로 표시되는 메소드를 쉽게 만들 수 있다. 이것은 깨끗하고 간단하며 유지 관리가 가능하고 테스트 가능한 MVVM 코드를 제공한다. 모든 DevExpress WPF 컨트롤 및 기타 WPF 컨트롤은 POCO ViewModel과 완벽하게 호환된다! POCO ViewModel 생성 POCO 클래스를 작동하는 ViewModel로 변환하려면 DevExpress.Mvvm.POCO.ViewModelSource 클래스로 생성해야 한다. using DevExpress.Mvvm.POCO; using System; namespace POC

Naver Blog

[WPF_DevExpress] ViewModel 02.ViewModelBase 클래스

해당 글은 DevExpress 18.2 버전을 기준으로 작성되었습니다. ViewModelBase는 BindableBase의 자식 클래스로 다음과 같은 추가 기능을 제공한다. ViewModelBase 선언 런타임 및 디자인 타임 모드에 대해 별도로 속성 초기화 ViewModel에는 데이터베이스에 대한 액세스가 필요한 속성이 포함될 수 있다. Visual Studio 디자이너가 작업하는 동안 ViewModel은 데이터베이스에 연결할 수 없어 오류가 발생한다. 이러한 경우 ViewModelBase 클래스는 런타임 및 디자인 타임 모드에 대한 속성을 별도로 초기화하기 위해 재정의할 수 있는 protected virtual 메소드인 OnInitializeInDesignMode 및 OninitializeInRuntime를 제공한다. class MainWindowViewModel : ViewModelBase { public IEnumerable<Employee> Employees { get {

Naver Blog

[WPF_DevExpress] ViewModel 01.BindableBase 클래스

해당 글은 DevExpress 18.2 버전을 기준으로 작성되었습니다. BindableBase 클래스는 INotifyPropertyChanged 인터페이스를 구현하여 최소한의 코딩으로 바인딩 가능한 속성을 선언하는 API를 제공한다. 바인딩 가능한 속성 바인딩 가능한 속성을 선언하려면 다음을 수행한다. DevExpress.Mvvm을 using한다. ViewModel에서 BindableBase 클래스를 상속한다. 바인딩하려는 속성의 getter 및 setter에서 GetValue 및 SetValue 메소드를 사용한다. using DevExpress.Mvvm; namespace ViewModelStudy { class ViewModel : BindableBase { public string FirstName { get { return GetValue<string>(nameof(FirstName)); } set { SetValue(value, nameof(FirstName)); } } }

Naver Blog

[WPF_DevExpress] MVVM 프레임워크

해당 글은 DevExpress 18.2 버전을 기준으로 작성되었습니다. DevExpress MVVM 프레임워크를 사용하면 WPF 애플리케이션에서 MVVM(Model-View-ViewModel) 디자인 패턴을 활용할 수 있다. MVVM(Model-View-ViewModel) 디자인 패턴은 애플리케이션을 3개의 레이어로 나눈다. Model : 데이터 및 비즈니스 로직을 정의한다. View : ViewModel의 속성 및 명령에 바인딩 된 모든 시각적 요소(버튼, 레이블, 편집기 등)를 포함하여 UI를 지정한다. ViewModel : View와 Model을 연결하는 로직을 포함한다. MVVM 디자인 패턴 MVVM 패턴으로 개발할 시 개발자와 디자이너 모두를 위한 보다 독립적인 개발 프로세스, 더 쉬운 코드 테스트 또는 더 간단한 UI 재설계와 같이 여러 이점이 있다. MVVM 프레임워크의 기능을 설명하는 항목은 다음과 같다. ViewModel : 바인딩 가능한 속성, 유효성 검사, 명령,

Naver Blog

[WPF_DevExpress] 사용자 정의 컨트롤 그리기

해당 글은 DevExpress 18.2 버전을 기준으로 작성되었습니다. 색상 테마를 사용하면 이름에 색상 값을 할당하여 개별/다중 요소의 색상 값으로 사용할 수 있다. 이름에 할당된 색상값을 변경하면 이 이름을 가진 모든 요소의 색상이 새로 할당된 색상으로 변경된다. 색상 테마를 사용하면 팔레트 색상을 코드의 리소스로 사용할 수 있다. 이 기능을 사용하면 DevExpress 테마 색상으로 사용자 지정 컨트롤을 페인트하여 응용 프로그램의 스타일을 일관되게 만들 수 있다. 다음 파일에서 테마 리소스 키를 찾을 수 있다. DevExpressControlsInstallationPath\Components\Sources\DevExpress.Xpf.Themes\ Theme_Name \Core\Core\Themes\ Theme_Name \Palettes.xaml DevExpressControlsInstallationPath\Components\Sources\DevExpress.Xpf.Themes

Naver Blog

[WPF_DevExpress] 테마(Themes)

해당 글은 DevExpress 18.2 버전을 기준으로 작성되었습니다. DevExpress에는 애플리케이션에 적용할 수 있는 다양한 테마를 지원해준다. 테마 덕분에 썰렁한 디자인의 애플리케이션이 나름 있어보이게 바꿔준다!! 그럼 나의 애플리케이션에 테마를 적용하는 방법을 배워보자!! 우선 윈도우를 클릭한 상태에서 스마트태그를 누릅니다. 그럼 ApplicationTheme가 보이는데 오늘의 주인공입니다!!!! 스마트태그로 애플리케이션 테마 변경 을 누르게 되면 다양한 테마들이 나옵니다. 여러분의 입맛에 맞는 걸로 골라주세요~ 다양한 애플리케이션 테마 테마를 선택하고 나시면 App.config 파일에 DXThemeManager 태그의 ApplicationThemeName 속성의 값이 변경됩니다. 저는 프로그래머로써 Visual Studio 2017 Dark 테마를 사용했습니다. App.config 파일의 ApplicationThemeName 속성 변경 테마 적용 결과를 보시면!!! 까무

Naver Blog

[WPF_DevExpress] 스마트 태그

해당 글은 DevExpress 18.2 버전을 기준으로 작성되었습니다. 스마트 태그는 값을 빠르게 설정하거나 속성을 바인딩할 수 있는 디자인 타임 확장이다. 또한 아이콘 할당, 컨트롤에 대한 Behavior, Service 작업을 수행하는 데 도움이 된다. 스마트 태그 버튼 및 설정 화면 바인딩 편집기 대화 상자 스마트 태그에 보이는 각 속성은 설정하거나 바인딩할 수 있다. 속성을 바인딩하려면 원기둥 아이콘(Binding Editor) 버튼을 사용한다. 속성 바인딩 화면 바인딩 소스 모드에는 DataContext, ElementName, RelativeSource Self, StaticResource가 있다. DataContext : 데이터 컨텍스트 객체에 정의된 속성을 표시한다. ElementName : 동일한 뷰 범위에 있는 모든 XAML 요소의 속성에 바인딩 할 수 있다. RelativeSource Self : 동일한 요소의 다른 속성에 바인딩 할 수 있다. StaticReso

Naver Blog

진주 하대동 닭갈비 맛집 신고집숯불닭갈비

명절에 친구들 만나서 신고집숯불닭갈비 다녀왔어요. 지난주에 평거점에서 먹었는데 오늘은 하대점이에요! 연속 3주 주말에 숯불닭갈비를 먹고 있네요ㅋㅋㅋ 신고집숯불닭갈비 경상남도 진주시 모덕로 249 신고집숯불닭갈비 하대점 ️ 매일 16:00 - 01:00 골목 주차 신고집숯불닭갈비 하대점은 살짝 예스러워요! 먼가 술이 더 맛있게 잘 들어가는 느낌이랄까요? 다만 화장실이 깔끔하지 않아 아쉬운 느낌..! 신고집숯불닭갈비 하대점 내부는 넓지 않아요! 4인 테이블 6개뿐이라 예약하고 방문하시는 거 추천! 술맛 업그레이드해주는 드럼통 테이블 아시쥬!? 저희는 테이블 2개 써야 돼서 드럼통 테이블 못썼네요. 평거점과 똑같이 각종 포스트들이 있어요~ 숯불닭갈비 예술로 굽는 법 필독해 주시고요~ "살은 내가 쪄요" 솔직 담백 명언이 있네요 메뉴판을 유심히 보니 이상한 점을 발견했어요! 평거점에는 닭안창살이 있는데 하대점은 없고 메뉴명, 양(g), 가격도 조금씩 차이가 있어요. 닭갈비 세트A 구성도

Naver Blog

[진주 가좌동 술집] 굿데이구디스, 분위기좋은 경상대 위스키, 와인, 칵테일, LP바

진주 가좌동 술집인 굿데이구디스를 오기 위해 하대동에서 닭갈비 먹고 경대로 넘어왔어요. 작년 추석 때 방문했었는데 분위기가 너무 좋아요! 경상대 핫플 술집답게 손님이 많아요. 저희가 딱 하나 남은 자리 차지했어요ㅋㅋ 굿데이구디스는 위스키, 와인, 칵테일파는 LP바에요. 어렸을 때 친구들과 소주, 맥주만 마셨는데 나이를 조금씩 먹어가니까 바를 오게 되네요!! 입구에 토토로 사진이 붙어있다니!! 이것은 운명인가?ㅋㅋ 굿데이구디스 내부는 살짝 어두운데 각가지 조명과 초로 따뜻한 느낌이에요. 조명에 비친 사물의 그림자 갬성 가득쓰~ 거기에 LP 음악이 귀를 사로잡는 느낌?! 누군가가 초로 태워먹은 갬성 가득 메뉴판이에요. 와인, 위스키, 하이볼, 칵테일, 맥주까지 종류가 다양해요! 와인과 어울리는 치즈, 멜론, 하몽 안주들 있어요. 와린이여서 직원분께 달달한 와인 추천 부탁드렸더니 마르케스 캄포알토 토니포트를 추천해 주시더라고요. 고소한 견과류, 말린자두, 블랙베리, 달콤한 초콜릿 적혀있지

Naver Blog

진주 가좌동 카페 몬트쿠키 경상대 디저트 쿠키 맛집

몬트쿠키 경상남도 진주시 가좌길 18-4 몬트쿠키, 쿠키가 맛있는 가좌동 카페 ️ 12:00 - 20:00 (매주 일요일 정기휴무) 19:50 라스트 오더 골목 주차 밥 먹고 달달한 디저트 먹는 행복 다들 아시죠? 오늘은 진주 가좌동 카페 몬트쿠키에 다녀왔어요. 저와 짝꿍 입맛을 사로잡은 경상대 쿠키 맛집이에요! 몬트쿠키는 경상대 후문 골목에 위치해 있는데 간판이 크지 않아서 가게가 잘 안 보일 수 있어요. 저는 입구에 알록달록 우유박스 의자로 찾았어요. 날씨 좋을 때 여기 앉아서 쿠키 먹으면 갬성가득~ 몬트쿠키 내부는 되게 아기자기했어요. 홀은 운영하지 않고 포장, 배달 가능해요. 파랑파랑한 벽지에 노란색으로 뽀인트~! 중간중간 꽃과 소품들로 꾸미신 게 센스 굳뜨! 몬트쿠키 스티커도 공짜로 제공하시더라고요~ 공짜는 못 참지 하면서 하나씩 들고와써요ㅋㅋ 몬트쿠키 제일 좋았던 점이 쿠키 종류가 많아요! 르뱅쿠키, 크럼블쿠키, 스모어쿠키 다 있쥬~ 작은 쿠키로 만족 못 하는 저를 위해

1 2 3 4 5