static public IBindingBuilder <TModel, TView, TCreated, TBindingCollection> Create <TModel, TView, TCreator, TCreated, TBindingCollection>( this IBindingBuilder <TModel, TView, TCreator, TBindingCollection> binding) where TCreator : ICreator <TCreated> where TCreated : class { return(binding.Select(c => c?.Create())); }
static public IBindingBuilder <TModel, TView, TLoadedValue, TBindingCollection> Load <TModel, TView, TLoadedValue, TBindingCollection>( this IBindingBuilder <TModel, TView, FilePath, TBindingCollection> builder, Func <ILoadFormat <TLoadedValue> > loadFormatProvider) { return(builder.Select((mv, m, v) => SafeLoad(mv, stream => { ILoadFormat <TLoadedValue> serializationFormat = loadFormatProvider(); return serializationFormat.Load(stream); }))); }
static public IBindingBuilder <TModel, TView, TLoadedValue, TBindingCollection> Load <TModel, TView, TLoadedValue, TBindingCollection>( this IBindingBuilder <TModel, TView, FilePath, TBindingCollection> builder, Func <ISerializationFormat <TLoadedValue> > serializationFormatProvider) where TModel : IGlyphData { return(builder.Select((mv, m, v) => SafeLoad(mv, stream => { ISerializationFormat <TLoadedValue> serializationFormat = serializationFormatProvider(); serializationFormat.KnownTypes = m.SerializationKnownTypes; return serializationFormat.Load(stream); }))); }
static public IBindingBuilder <TModel, TView, TConvertedValue, TBindingCollection> Select <TModel, TView, TModelValue, TConvertedValue, TBindingCollection>( this IBindingBuilder <TModel, TView, TModelValue, TBindingCollection> builder, Func <TModelValue, TConvertedValue> converter) { return(builder.Select((mv, m, v) => converter(mv))); }