본문 바로가기

.NET/WPF

[WPF] XAML 코드 상에서 DataContext 지정하기

보통 ViewModel을 XAML 코드 상에서 지정하기 위해 ViewModel의 네임스페이스를 상단에 xmlns로 참조해주는 과정을 거쳐야 한다.

html
닫기
<UserControl ... ​​​​​​​​​​​​​중략 ​​​​​​​​​​​​​xmlns:vm="clr-namespace:MyApplication.ViewModels" ​​​​​​​​​​​​​>

그러나 어차피 ViewModel의 네임스페이스는 DataContext를 지정할 때 한 번만 사용되며 이후로는 사용될 일이 딱히 없다.

이러한 경우 아래와 같이 1회성 네임스페이스 참조 구문을 사용할 수 있다.

 

html
닫기
<UserControl ... ​​​​​​​​​​​​​생략 ​​​​​​​​​​​​​... ​​​​​​​​​​​​​> ​​​​<UserControl.DataContext> ​​​​​​​​<!-- clr-namespace: 뒤에 ViewModel이 위치한 네임스페이스를 적는다. --> ​​​​​​​​<vm:MyUserControlViewModel xmlns:vm="clr-namespace:MyApplication.ViewModels"/> ​​​​</UserControl.DataContext> ​​​​ ​​​​<Grid> ​​​​ ​​​​</Grid> </UserControl>

먼저 임의의 네임스페이스를 사용한 다음, 뒤쪽에 바로 이어서 해당 네임스페이스의 세부 경로를 지정해주면 된다.