0
목록 항목의 속성이 다른 화면에서 변경되면 ObjectDisposedException이 발생합니다. 내 렌더러 코드는 다음과 같습니다.Xamarin Forms : System.ObjectDisposedException
namespace SmartwebsCrossPlatform.CustomRenderers {
public class GradientViewCellRenderer : ViewCellRenderer {
View cellCore;
protected override View GetCellCore(Cell item, View convertView, ViewGroup parent, Context context) {
cellCore = base.GetCellCore(item, convertView, parent, context);
DirtyChanged();
return cellCore;
}
protected override void OnCellPropertyChanged(object sender, PropertyChangedEventArgs e) {
base.OnCellPropertyChanged(sender, e);
if (e.PropertyName == "IsDirty")
DirtyChanged();
}
void DirtyChanged() {
var viewCell = Cell as GradientViewCell;
if(cellCore != null && viewCell != null) {
int r = viewCell.IsDirty
? Resource.Drawable.listViewGradientDirty
: Resource.Drawable.listViewGradient;
try {
cellCore.SetBackgroundResource(r);
} catch (ObjectDisposedException ex) {
Log.Warning(ex, "GradientViewCellRenderer.DirtyChanged");
}
}
}
}
}
질문 : cellCore가 DirtyChanged에 삭제되었는지 어떻게 알 수 있습니까?