2017-02-20 2 views
2

으로 업데이트되지 BIND과 같이 변환기를 사용하지 않고 당신이 toggle the visibility of XAML elements 할 수 있어야한다 (14,393분의 14,383 빌드) :가 : 기념일 업데이트 이후 MVVM

<TextBlock Text="I'm not visible!" Visibility="{x:Bind IsVisibleFalse}" /> 
<TextBlock Text="I'm visible!" Visibility="{x:Bind IsVisibleTrue}" /> 

내가했다 Windows 10 기념일 버전으로 설정된 최소 대상 버전입니다. 불행하게도 나는 그것을 작동시키지 않았다.

이 코드는 잘 작동합니다 :

<StackPanel Visibility="{x:Bind ViewModel.IsUnlocked}> 

나는 의심 :

<StackPanel Visibility="{x:Bind ViewModel.IsUnlocked, 
    Converter={StaticResource BoolToVisibilityConverter}, Mode=TwoWay}"> 

이 사람은 없다합니다 (부울 값이 변경 될 때, 단지 컴파일에 오류를 표시하지 않습니다) 않습니다 Mode = "TwoWay"는 문제가 될 수 있습니다. 바인딩 표현식이 캐스트로 끝나는 시점을 설정할 수 없기 때문입니다.

<StackPanel Visibility="{x:Bind ViewModel.IsUnlocked, 
    Converter={StaticResource BoolToVisibilityConverter}> 

그래서 제 질문은 다음과 같습니다 : 나는 misssing 건가요 뭔가를하거나이는 MVVM - 시나리오에 유일한 코드 숨김와 아직 작동하지 않습니다이 코드는 잘 작동하지 않는 이유는 무엇입니까?

답변

2

기본 Mode이 코드가 작동하지 렌더링 OneTime입니다. 캐스팅시 사용할 수있는 OneWay을 사용하는 것이 좋습니다.

+0

감사합니다. 나는 이것을 알아 냈습니다. :-) – Thomas

+0

이 질문에 대한 답변도 더 자세합니다. http://stackoverflow.com/questions/33070705/with-compiled-bindings-xbind-why-do-i-have-to-call-bindings-update – Thomas

+0

@ 토마스 같은 순간 답변에 대한 우연의 일치. –

0

x : 바인드의 기본값은 Mode=OneTime입니다. 실수로 생각하면 Mode=OneWay입니다. 그래서이 실제로 작동합니까 :

<StackPanel Visibility="{x:Bind ViewModel.IsUnlocked, Mode=OneWay}> 
관련 문제