Beispiel #1
0
    public static bool TryAddSlotData <T>(this T target, object slot, object data)
        where T : class
    {
#if !PCL
        if (BindableHelpers <T> .IsBindable(slot))
        {
            return(BindableHelpers <T> .TryAddSlotData(target, slot, data));
        }
#endif
        return(MapOfDataSlotTables.GetOrCreateValue(target).TryAdd(slot, data));
    }
Beispiel #2
0
    public static void SetSlotData <T>(this T target, object slot, object data)
        where T : class
    {
#if !PCL
        if (BindableHelpers <T> .IsBindable(slot))
        {
            BindableHelpers <T> .SetSlotData(target, slot, data);

            return;
        }
#endif
        MapOfDataSlotTables.GetOrCreateValue(target)[slot] = data;
    }
Beispiel #3
0
    public static object GetSlotData <T>(this T target, object slot)
        where T : class
    {
#if !PCL
        if (BindableHelpers <T> .IsBindable(slot))
        {
            return(BindableHelpers <T> .GetSlotData(target, slot));
        }
#endif
        ConcurrentDictionary <object, object> table;
        if (MapOfDataSlotTables.TryGetValue(target, out table))
        {
            return(table[slot]);
        }

        return(null);
    }
Beispiel #4
0
    public static bool TryGetSlotData <T>(this T target, object slot, out object data)
        where T : class
    {
#if !PCL
        if (BindableHelpers <T> .IsBindable(slot))
        {
            return(BindableHelpers <T> .TryGetSlotData(target, slot, out data));
        }
#endif
        ConcurrentDictionary <object, object> table;
        if (MapOfDataSlotTables.TryGetValue(target, out table))
        {
            return(table.TryGetValue(slot, out data));
        }

        data = null;
        return(false);
    }