본문 바로가기

.NET/WPF

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

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

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

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

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

 

<UserControl ...
             생략
             ...
             >

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

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