본문 바로가기

전체 글319

DialogService 이용하는 방법 DialogService를 이용하면 MVVM 패턴에서 ViewModel과 View 간의 의존성을 줄이면서도 깔끔하게 MessageBox와 같은 다이얼로그를 처리할 수 있습니다. 아래는 DialogService를 구현하고 사용하는 예입니다:1. DialogService 인터페이스 정의먼저, 다이얼로그 동작을 추상화하는 인터페이스를 정의합니다.public interface IDialogService{ void ShowMessage(string message, string title);}2. DialogService 구현인터페이스를 실제로 구현하여 MessageBox를 호출하는 클래스를 작성합니다.using System.Windows;public class DialogService : IDialogSer.. 2025. 4. 23.
WPF MVVM 패턴을 이용한 프로그램에서 Messagebox를 실행할 경우 호출 스택에서 throw 발생하는 경우 WPF MVVM 패턴에서 Event 함수 내에서 MessageBox를 실행하는 중 호출 스택에서 오류가 발생한 이유는 보통 UI 스레드와 관련이 있을 가능성이 높습니다. MVVM 패턴에서는 데이터와 UI를 분리하여 ViewModel에서 UI 요소를 직접 제어하지 않도록 설계되었습니다. 그러나 MessageBox는 UI 요소를 직접 생성하기 때문에 문제가 발생할 수 있습니다. 주요 원인으로는 다음과 같은 경우를 고려할 수 있습니다: 1. UI 스레드 접근 문제: Event 함수가 비동기 작업(예: Task.Run() 또는 다른 비동기 메서드) 내에서 실행되고 있다면, MessageBox를 호출할 때 UI 스레드가 아닌 다른 스레드에서 접근하려고 해서 오류가 발생할 수 있습니다. 이 경우 Dispatcher.. 2025. 4. 23.
WPF Group에서 Category 또는 Group별로 표시 하는 방법 WPF DataGrid에서 그룹별로 데이터를 표시하려면 CollectionViewSource를 사용하여 데이터를 그룹화할 수 있습니다. GroupStyle을 적용하면 그룹별 헤더를 만들 수도 있습니다. 1. CollectionViewSource를 사용한 데이터 그룹화먼저, CollectionViewSource를 활용하여 데이터를 그룹화합니다. 위 코드에서 PropertyGroupDescription을 사용하여 "Category" 속성을 기준으로 그룹화합니다.2. DataGrid에서 그룹별 표시하기이제 DataGrid에 ItemsSource를 CollectionViewSource로 설정하고 GroupStyle을 사용하여 헤더를 표시할 수 있습니.. 2025. 4. 23.
BTLE SignalStrength 확인 방법 Bluetooth Low Energy Sample Codehttps://mydevnote.tistory.com/329 Bluetooth Low Energy(BT LE) Sample CodeBluetooth 통신 요청을 받아서 개발을 검토 했고 초기 개발을 완료해서 테스트 해보니 장치가 내가 생각했던 것이 아니었다. 내가 개발한 것은 Bluetooth Classic 방식 이었던 것이다. 요즘 스마트폰이mydevnote.tistory.com 위에서 제공하는 코드를 참조해서 개발을 하다가 SignalStrength(신호 강도) 확인 요청을 받았다.아래 클래스에서 DeviceInformation 객체를 통해 Id, Name, IsPaired 등의 정보를 확인 할 수가 있다.그러나 SignalStrength는 없.. 2025. 2. 20.
Bluetooth Low Energy(BT LE) Sample Code Bluetooth 통신 요청을 받아서 개발을 검토 했고 초기 개발을 완료해서 테스트 해보니 장치가 내가 생각했던 것이 아니었다. 내가 개발한 것은 Bluetooth Classic 방식 이었던 것이다. 요즘 스마트폰이나 이어폰 등에서 사용하는 Bluetooth 통신 방식은 BT LE이다.Bluetooth Low Energy(BLE)BLE는 종종 Bluetooth Smart 로도 불리며 classic Bluetooth의 경량화 버전을 목표로 블루투스 4.0의 일부로 발표되었습니다. Classic Bluetooth와 겹치는 부분이 존재하지만 BLE는 완전히 다른 표준으로 블루투스 표준화 그룹인 Bluetooth SIG에 의해서 개발되기 전까지 Nokia의 사내 프로젝트(Wibree)로 시작하였습니다.BLE를 .. 2025. 2. 20.
Redmine CKEditor4 Base64 (클립보드 이미지 표시) 문제 해결 Redmine 3.4.3 버전을 사용하고 있다.그리고 Editor로는 CKEditor 1.1.4를 설치해서 사용 하는데 클립보드 이미지가 Edit 모드에서는 보이지만 View 모드에서는 표시가 되지 않는 문제가 있었다.검색을 해보니 Base64 인코딩 형식으로 저장을 하는데 CKEditor 플러그인으로 Base64 설치를 해야 한다고 한다. 당연히 clipboard image paste 1.13도 설치를 했는데 무슨 문제인지 화면에 클립보드 추가 버튼이 표시가 되지 않아 CKEditor에 Base64를 설치해서 사용하도록 했다. clipboard_image_paste가 정상적으로 작동되지 않는 문제도 해결을 해야 할 듯 싶다. 내가 설치해서 사용하는 버전 정보이다. Paste image as base64.. 2025. 2. 3.
"Bluetooth 및 장치 > 장치" 설정 실행 CMD 블루투스 장치 설정 창을 CMD로 실행: bthprops.cpl 2024. 10. 21.
BluetoothFindFirstDevice Example https://learn.microsoft.com/ko-kr/windows/win32/api/bluetoothapis/nf-bluetoothapis-bluetoothfindfirstdevice BluetoothFindFirstDevice 함수(bluetoothapis.h) - Win32 appsBluetoothFindFirstDevice 함수는 Bluetooth 디바이스 열거를 시작합니다.learn.microsoft.comBluetoothFindFirstDevice 함수는 Bluetooth 디바이스 열거를 시작합니다.HBLUETOOTH_DEVICE_FIND BluetoothFindFirstDevice( const BLUETOOTH_DEVICE_SEARCH_PARAMS *pbtsp, BLUETO.. 2024. 10. 21.
카니발 4세대 공회전 제한 시스템(ISG) 사용 설명서 공회전 제한 시스템(ISG) (사양 적용시) 공회전 제한 시스템은 신호 대기 상황이거나 정차 중일 때 차의 엔진을 일시 정지하여 연비를 높이고, 배출 가스 발생을 억제하는 시스템입니다. 공회전 제한 시스템은 시동을 걸면 항상 작동합니다. [주 의] 공회전 제한 시스템이 작동할 때 일부 경고등(ABS, 브레이크, 차체자세 제어 장치, 차체자세 제어 장치 OFF)이 켜질 수 있으나, 시동이 걸릴 때 순간적인 전류 소모로 인한 현상으로 시스템 고장이 아닙니다. * ISG는 Idle Stop and Go의 약자입니다. 공회전 제한 시스템 작동 조건 운전석 안전벨트가 채워진 상태 운전석 도어, 엔진 후드가 닫힌 상태 브레이크 부압이 적절할 때 배터리 센서가 활성화되고 충전 상태가 적절할 때 외기온도가 너무 낮거나.. 2024. 4. 17.