WPF로 개발을 하다 보면 종종 Blend나 VS의 디자이너에서 화면을 불러올 수 없다고 오류가 뜨는 경우가 있다. 아마도 디자이너가 화면을 렌더링 할 때 코드를 일부 컴파일 하는 것으로 보인다. 특히, dll (어셈블리) 또는 여기에 종속되어 있는 파일이나 어셈블리가 있을 경우 빈번히 일어난다. 이럴 경우 생성자 부분에 아래와 같이 디자인 타임인지 아닌지를 구분하도록 한다. public MainView() { InitializeComponent(); // [1/15/2015 ksh] 디자인 타임에서 dll 로딩시 문제 발생함. 아래 코드는 디자인타임시에는 dll 로딩안하고 리턴하도록 수정. if (System.ComponentModel.DesignerProperties.GetIsInDesignMode(..
WPF 에서 Navigate 구조를 이용할 경우 Backspace 키를 누르면 이전으로 돌아간다.이것을 방지하기 위해서는 아래와 같이 한다. 1. 윈도우 자체가 NavigationWindow를 상속받은 경우 public partial class Window1 : NavigationWindow { public Window1() { InitializeComponent(); this.NavigationService.Navigated += new NavigatedEventHandler(NavigationService_Navigated); } private void NavigationService_Navigated(object sender, NavigationEventArgs e) { this.Navigation..
ListBox에 Context 메뉴를 호출하는 방법은 아래와 같이 간단히 할 수 있다. ... 이렇게 하면 아이템이 선택되지 않았을 경우도 ContextMenu가 나타난다. ListBox의 Item이 선택된 후에 Context 메뉴를 나타나게 하기 위해서는 ListBox의 DataTemplate 안에 StackPanel을 위치시키고, StackPanel의 ContextMenu를 호출한다. --------------- ------------------- 이렇게 하면 Item이 선택되었을 때에만 메뉴가 나타난다..
아래처럼 xml에서 Image를 바인딩을 통해 로딩할 때, ImagePath가 null 또는 "" 일경우 system.windows.data error: 23 Cannot convert '' from type '' to type ... 와 같은 에러가 난다. 이럴 경우 바인딩된 변수를 아래와 같이 해결하면 에러가 나지 않는다. private string _imagePath = string.Empty; public object ImagePath { get { if (string.IsNullOrEmpty(_imagePath)) return DependencyProperty.UnsetValue; return _imagePath; } set { if (!(value is string)) return; _imag..
애자일(Agile) 개발 방법론 헌장 프로세스와 개발 보다 사람과 의사소통 기획문서 보다 눈에 보여지는 결과물 계약과 협상 보다 고객과의 협업(빠른 피드백으로 회의시간 단축) 계획에 대한 맹종 보다 변화에 대한 대응 모든 프로그램 개발에 있어서 꼭 필요한 것이 아닐까? 물론... 고전적인 폭포수 모델도 제대로 해본적이 없는 것이 사실이지만 현재 나에게 필요한 것이 무엇인지를 깨닫게 해주었다. 앞으로 주로 XP를 사용하게 될 것같으며, 꼭 잊지 말자는 뜻에서 몇가지 규칙을 적는다. 익스트림 프로그래밍(XP)의 일련의 규칙들 1. 조금씩 하지만 자주 발표하다. 2. 사이클을 반복해서 개발한다. 3. 스펙에 없는 것은 절대 넣지 않는다. 4. 테스트 코드를 먼저 만든다. 5. 야근을 하지 않는다. 항상 정규 ..