프리즘 응용 프로그램에는 내 뷰 모델에서 호출되는 많은 비동기 작업이 있습니다. 경우에 따라 viewmodel이 비동기 작업에서 결과를 얻을 때까지보기를 사용하지 않도록 설정하고 일종의 사용중 표시기를 표시해야합니다.프리즘을 사용하여 기본로드 뷰 만들기
이 동작을 구현하는 기본보기를 만들지 만 (즉,보기를 비활성화하고 위에 바쁜 표시기를 표시하는 IsLoading의 종속성 속성이 있음). 문제는이 기본 뷰를 구현하는 방법을 모르겠습니다. 도움을 주시면 감사하겠습니다.
편집 : 나는 작업을 수행하는 LoadingView를 작성했다고 생각합니다.
public class LoadingView : UserControl { private object content;
public bool IsLoading
{
get
{
return (bool)GetValue(IsLoadingProperty);
}
set
{
SetValue(IsLoadingProperty, value);
}
}
private ProgressRing m_RingControl;
public LoadingView()
{
m_RingControl = new ProgressRing();
m_RingControl.IsActive = false;
}
// Using a DependencyProperty as the backing store for IsLoading. This enables animation, styling, binding, etc...
public static readonly DependencyProperty IsLoadingProperty =
DependencyProperty.Register("IsLoading", typeof(bool), typeof(LoadingView), new PropertyMetadata(false, IsActivePropertyChanged));
private static void IsActivePropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
LoadingView view = d as LoadingView;
if (view != null)
{
// Loading - show ring control
if (((bool)e.NewValue) == true)
{
view.content = view.Content;
view.Content = view.m_RingControl;
view.m_RingControl.IsActive = true;
}
else
{
view.m_RingControl.IsActive = false;
view.Content = view.content;
}
}
}
}
와 내가 뷰 모델
답장을 보내 주셔서 감사합니다.하지만 내 의도는 뷰 모델보다보기에 더 가깝습니다. – user2853648
@ user2853648 나는 그것을 알고있다, 나의 대답은 하나의'IsBusy' 속성으로 비동기 메서드의 결과를 마샬링하는 것을 돕는 것을 목표로했다. 그래도 컨트롤을 찾고 있다면 [BusyIndicator] (http://elegantcode.com/2011/10/07/extended-wpf-toolkitusing-the-busyindicator/) – slugster