티스토리 뷰

반응형
Windows Phone 7.1 하단에 나오는 ApplicationBar는 기본적으로 바인딩이 않된다. 그래서 MVVM에서는 사용하기가 좀 난해하기 때문에 Binding이 가능한 ApplicationBar를 찾게 되는데..이것도 사람마다 만드는 방식이 달라서, 이것 저것 찾아 보며 고민을 하다가, 오늘 좋은 놈을 찾게 되어서 포스팅 한다.

BindableApplicationBar
http://bindableapplicationb.codeplex.com/

해당 페이지 오른쪽에 Download를 눌러서 소스를 받고, 프로젝트를 열고, 빌드를 하고, 생성된 BindableApplicationBar.dll 파일을 프로젝트에 추가해서 사용하면 된다.
사용법은 페이지 하단부에 나와있다.

1. 그러나 이것도 역시나 Blend에서 보면 빨간줄이 살짝 그어지면서, cannot clear the icon while in a list Parameter name: value 이런 오류를 만들어 낸다. 음.. Blend에서 발생하는 오류는 어떻게 처리 할 방법이 없는 것인가 보다.(찾다가 지쳤다는..)

2. 버튼에 IsEnabled 프로퍼티에 ViewModel에 있는 IsRefresh 프로퍼티를 바인딩 시켜 놓았는데, 제대로 동작 하지 않는 것 같다.
그래서, 바인딩 속성을 변경해서 처리 했다. 가끔 바인딩한 속성이 PropertyChanged를 인식하지 못하는 경우가 있는데, 그런 경우 아래와 같이 처리한다.

<bar:Bindable.ApplicationBar>
    <bar:BindableApplicationBar >
        <bar:BindableApplicationBarButton Text="새로고침"
                                          IconUri="/Images/appbar.refresh.rest.png"
                                          IsEnabled="{Binding IsRefresh, Mode=TwoWay, UpdateSourceTrigger=Explicit}"
                                          Command="{Binding RefreshCommand, Mode=OneWay}" />
        <bar:BindableApplicationBarButton Command="{Binding DeleteCommand, Mode=OneWay}" 
                                          IconUri="/Images/appbar.delete.rest.png"
                                          Text="결과 삭제" />
    </bar:BindableApplicationBar>
</bar:Bindable.ApplicationBar>

반응형
댓글