MVVM Model로 간단하게 코드를 작성하다 보면 다음과 같이 Behind 코드에서
ViewModel을 가져오는 경우가 있다.
this.DataContext = new MinsuViewModel();
자, 오늘은 이놈이 말썽을 일으키셨다!!
1: public partial class MainWindow : Window
2: {
3: public MainWindow()
4: {
5: InitializeComponent();
6: this.DataContext = new MinsuViewModel();
7: }
8: }
요놈이 무슨 문제가 있을까.....
곰.....곰......곰........문.......문......... 곰이 꺼꾸로 자뻐지도록 생각을 해봤다.
왜!?
1: <i:Interaction.Triggers>2: <i:EventTrigger EventName="Loaded">3: <my:EventToCommand Command="{Binding WindowsLoaded}"></my:EventToCommand>4: </i:EventTrigger>5: </i:Interaction.Triggers>
요 인터렉션 트리거가 들어오질 않는다!!??
도대체 왜!!
Handler 등록도 확인해보고, Relay Command도 확인해보고,
1: <Button>2: <i:Interaction.Triggers>3: <i:EventTrigger EventName="Click">4: <my:EventToCommand Command="{Binding WindowsLoaded}"></my:EventToCommand>5: </i:EventTrigger>6: </i:Interaction.Triggers>7: </Button>
헐.... 근대 이렇게 한 놈은 들어온다!?
이게 무슨 일인고 생각해 보니....
가장 처음에 올린 소스부터가 문제였구만...
1: public partial class MainWindow : Window2: {3: public MainWindow()
4: {5: InitializeComponent();6: this.DataContext = new MinsuViewModel();7: }8: }
InitializeComponent(); // 자... 이놈이 Window의 Load를 담당하고 있다..
this.DataContext = new MinsuViewModel(); // 그러고 나서 DataContext에 바인딩을 걸었다!!?
응?!
시부엉....
Window Load 다 되고 나서, Command를 Relay 하고, 바인딩 하고 난리 부루쓰를 춰 봐야..
Loaded Event는 천년전에 이루어진 일이거늘....
오늘도 삽질끝에 하나 배워가는구나..
'개발자국 > WPF / Expression' 카테고리의 다른 글
Prism 4.0 - Chapter 1. Introduction (1) | 2012.11.25 |
---|---|
Custom Panel in WPF (0) | 2012.11.15 |
[WPF] Key Event of "Enter" in MVVM Model Command (Using InputBindings) (0) | 2012.09.16 |
[Expression] DatagridCell 선택영역 (0) | 2012.09.15 |
[Expression Blend] Margin의 기준점이 이상한 곳에 머물어 있을때, (0) | 2012.09.15 |