다양한 요소의 가시성이 ViewModel의 일부 속성에 바인딩되는 Silverlight UI에서 상당히 일반적인 상황이 있습니다. 경고 상태가 trueSilverlight보기에서 깜박임을 방지하려면 어떻게합니까?
<myapp:WarningView Visibility="{Binding IsInWarningState}" />
경우, 우리는, 우리가하지하지 않을 경우, 컨트롤을 표시하려면 : 예를 들어,이 같은 컨트롤을 가질 수있다. 문제는 페이지가 렌더링되고 WarningView 컨트롤을 포함하여 모든 콘텐트를 표시하는 많은 상황을 가지고 있고, 그 다음에 잠시 후 뷰가 숨겨져 서투른 것처럼 보입니다.
나는 View가로드되어 서버를 비동기 적으로 호출하여 데이터를 가져 오는 것으로 생각하지만, 그렇게되기 전에는 DataContext가없고 WarningView가 바인딩 할 기본값이 아니며 기본값은 컨트롤을 표시하는 것입니다.
뷰가 자신의 뷰 모델을 인스턴스화하는 것이 가장 깨끗하게 보입니다. 적어도 지금은 내가하고있는 것입니다. 그리고 호출이 비동기이기 때문에 무언가를 보여주고 싶지만 아직 보여줄 실제 데이터가없는 경우에는 일정 간격이있을 수 있습니다. 더 나은 기본값으로 모의 ViewModel을 만드는 것을 상상할 수도 있지만, 프로젝트 전반에 걸쳐 많은 일을하는 것처럼 보입니다.
이 문제를 해결하는 가장 좋은 방법은 무엇입니까?
VM에서 IsInWarningState의 기본값이 true 또는 false입니까? –
False. 컨트롤이 숨겨져 있어야하고 VM이로드되면 숨겨 지지만 표시 될 때까지는 깜박임이 발생하는 이유입니다. –
VM에서 비동기 호출이 완료 될 때까지 기다리는 이유는 무엇입니까? IsInWarningState 속성에 대한 코드를 포함시켜 주시겠습니까? ViewModel을 뷰에 연결하는 방법은 무엇입니까? –