本文整理汇总了C#中NSObject.GetDataContext方法的典型用法代码示例。如果您正苦于以下问题:C# NSObject.GetDataContext方法的具体用法?C# NSObject.GetDataContext怎么用?C# NSObject.GetDataContext使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类NSObject
的用法示例。
在下文中一共展示了NSObject.GetDataContext方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: DecodeState
/// <summary>
/// Occurs on load element state.
/// </summary>
public void DecodeState(NSObject item, NSCoder state, IDataContext context = null)
{
Should.NotBeNull(item, "item");
Should.NotBeNull(state, "state");
RestoreNavigationParameter(item, state);
if (!state.ContainsKey(VmTypeKey))
return;
var vmTypeName = (NSString)state.DecodeObject(VmTypeKey);
if (vmTypeName == null)
return;
object dataContext = item.GetDataContext();
var vmType = Type.GetType(vmTypeName, false);
if (vmType != null && (dataContext == null || !dataContext.GetType().Equals(vmType)))
{
if (context == null)
context = DataContext.Empty;
RestoreViewModel(vmType, RestoreViewModelState(item, state, context), item, state, context);
}
}
示例2: EncodeState
/// <summary>
/// Occurs on save element state.
/// </summary>
public void EncodeState(NSObject item, NSCoder state, IDataContext context = null)
{
Should.NotBeNull(item, "item");
Should.NotBeNull(state, "state");
var controller = item as UIViewController;
if (controller != null && string.IsNullOrEmpty(controller.RestorationIdentifier))
return;
var view = item as UIView;
if (view != null && string.IsNullOrEmpty(view.RestorationIdentifier))
return;
object navigationParameter = (item as UIViewController).GetNavigationParameter();
if (navigationParameter != null)
{
using (Stream stream = _serializer.Serialize(navigationParameter))
state.Encode(stream.ToArray(), ParameterStateKey);
}
var viewModel = item.GetDataContext() as IViewModel;
if (viewModel != null)
{
state.Encode(new NSString(viewModel.GetType().AssemblyQualifiedName), VmTypeKey);
PreserveViewModel(viewModel, item, state, context ?? DataContext.Empty);
}
}