C# Catel框架-惰性属性

C# Catel框架-惰性属性,c#,wpf,catel,C#,Wpf,Catel,我试图用Catel框架创建一个lazy属性。有办法吗 在ViewModel中创建属性时,如下所示: #region Photos property /// <summary> /// Gets or sets the Photos value. /// </summary> public FastObservableCollection<Photo> Photos { get { var temp = GetValue<

我试图用Catel框架创建一个lazy属性。有办法吗

在ViewModel中创建属性时,如下所示:

#region Photos property

/// <summary>
/// Gets or sets the Photos value.
/// </summary>
public FastObservableCollection<Photo> Photos
{
    get
    {
        var temp = GetValue<FastObservableCollection<Photo>>(PhotosProperty);
        if (temp == null)
            Photos = SelectedPatient.GetPhotos();
        return GetValue<FastObservableCollection<Photo>>(PhotosProperty);
    }
    set { SetValue(PhotosProperty, value); }
}

/// <summary>
/// Photos property data.
/// </summary>
public static readonly PropertyData PhotosProperty = RegisterProperty("Photos", typeof (FastObservableCollection<Photo>));

#endregion
#区域照片属性
/// 
///获取或设置照片值。
/// 
公众快速观察收集照片
{
得到
{
var temp=GetValue(属性);
if(temp==null)
照片=SelectedPatient.GetPhotos();
返回GetValue(PhotosProperty);
}
set{SetValue(属性,值);}
}
/// 
///照片属性数据。
/// 
公共静态只读属性data photoproperty=RegisterProperty(“照片”,类型(FastObservableCollection));
#端区
即使在没有绑定的情况下也会调用
get
函数,因此在初始化ViewModel时会初始化my lazy属性


有没有办法做到这一点?

实现“惰性属性”只有一种方法,那就是使用惰性类。原因是,对于某些映射(如视图模型到模型等),Catel直接使用SetValue而不是属性包装器(将Catel属性与依赖属性进行比较)。

实现“惰性属性”的方法只有一种,那就是使用惰性类。原因是,对于某些映射(如视图模型到模型等),Catel直接使用SetValue而不是属性包装器(将Catel属性与依赖属性进行比较)。

是否有一个选项可以处理ViewModel中相应视图的“visibilitychanged”?这也是一个选项(解决方法)也许有一个选项可以处理ViewModel中相应视图的“visibilitychanged”?这也是一个选项(解决方法)也许有一个选项可以处理ViewModel中相应视图的“visibilitychanged”?这也是一个选择(解决办法)你能发布一个此类财产的样本吗?你能发布一个此类财产的样本吗?你能发布一个此类财产的样本吗?