Exemple #1
0
        public ItemsList(ObservableList <IComponent> items, params UnitSize[] columns)
        {
            Items = items ?? new ObservableList <IComponent>();

            if (columns.Length < 2)
            {
                _stack            = Stack().Horizontal().Wrap().WidthStretch().MaxHeight(100.percent()).Scroll();
                _maxStackItemSize = columns.FirstOrDefault() ?? 100.percent();
            }
            else
            {
                _grid = Grid(columns).WidthStretch().MaxHeight(100.percent()).Scroll();
            }
            _emptyListMessageGenerator = null;

            _defered = DeferedComponent.Observe(
                Items,
                observedItems =>
            {
                if (!observedItems.Any())
                {
                    if (_emptyListMessageGenerator is object)
                    {
                        if (_grid is object)
                        {
                            return(_grid.Children(_emptyListMessageGenerator().GridColumnStretch()).AsTask());
                        }
                        else
                        {
                            return(_stack.Children(_emptyListMessageGenerator().WidthStretch().HeightStretch()).AsTask());
                        }
                    }
                    else
                    {
                        if (_grid is object)
                        {
                            _grid.Clear();
                            return(_grid.AsTask());
                        }
                        else
                        {
                            _stack.Clear();
                            return(_stack.AsTask());
                        }
                    }
                }
                else
                {
                    if (_grid is object)
                    {
                        return(_grid.Children(observedItems).AsTask());
                    }
                    else
                    {
                        return(_stack.Children(observedItems.Select(i => i.Width(_maxStackItemSize)).ToArray()).AsTask());
                    }
                }
            }
                );
        }
Exemple #2
0
 public static IDefer Defer <T1, T2>(IObservable <T1> o1, IObservable <T2> o2, Func <T1, T2, Task <IComponent> > asyncGenerator, IComponent loadMessage) => DeferedComponent.Observe(o1, o2, asyncGenerator, loadMessage);
Exemple #3
0
 public static IDefer DeferSync(Func <IComponent> syncGenerator, IComponent loadMessage) => DeferedComponent.Create(() => syncGenerator().AsTask(), loadMessage);
Exemple #4
0
 public static IDefer Defer(Func <Task <IComponent> > asyncGenerator, IComponent loadMessage) => DeferedComponent.Create(asyncGenerator, loadMessage);
Exemple #5
0
 public static IDefer Defer <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(IObservable <T1> o1, IObservable <T2> o2, IObservable <T3> o3, IObservable <T4> o4, IObservable <T5> o5, IObservable <T6> o6, IObservable <T7> o7, IObservable <T8> o8, IObservable <T9> o9, IObservable <T10> o10, Func <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, Task <IComponent> > asyncGenerator) => DeferedComponent.Observe(o1, o2, o3, o4, o5, o6, o7, o8, o9, o10, asyncGenerator);
Exemple #6
0
 public static IDefer Defer <T1, T2, T3, T4, T5, T6>(IObservable <T1> o1, IObservable <T2> o2, IObservable <T3> o3, IObservable <T4> o4, IObservable <T5> o5, IObservable <T6> o6, Func <T1, T2, T3, T4, T5, T6, Task <IComponent> > asyncGenerator) => DeferedComponent.Observe(o1, o2, o3, o4, o5, o6, asyncGenerator);
Exemple #7
0
 public static IDefer Defer <T1, T2, T3>(IObservable <T1> o1, IObservable <T2> o2, IObservable <T3> o3, Func <T1, T2, T3, Task <IComponent> > asyncGenerator) => DeferedComponent.Observe(o1, o2, o3, asyncGenerator);
Exemple #8
0
 public static IDefer Defer <T1>(IObservable <T1> o1, Func <T1, Task <IComponent> > asyncGenerator) => DeferedComponent.Observe(o1, asyncGenerator);
Exemple #9
0
 public static IDefer DeferSync(Func <IComponent> syncGenerator) => DeferedComponent.Create(() => syncGenerator().AsTask());
Exemple #10
0
        //Note: the Defer method with optional loadMessage caused a bridge compiler issue when resolving the method, so we provide here both with and without the loadMessage method

        public static IDefer Defer(Func <Task <IComponent> > asyncGenerator) => DeferedComponent.Create(asyncGenerator);
Exemple #11
0
 public static IDefer Defer <T1, T2, T3, T4, T5, T6, T7, T8>(IObservable <T1> o1, IObservable <T2> o2, IObservable <T3> o3, IObservable <T4> o4, IObservable <T5> o5, IObservable <T6> o6, IObservable <T7> o7, IObservable <T8> o8, Func <T1, T2, T3, T4, T5, T6, T7, T8, Task <IComponent> > asyncGenerator, IComponent loadMessage) => DeferedComponent.Observe(o1, o2, o3, o4, o5, o6, o7, o8, asyncGenerator, loadMessage);
Exemple #12
0
 public static IDefer Defer <T1, T2, T3, T4, T5>(IObservable <T1> o1, IObservable <T2> o2, IObservable <T3> o3, IObservable <T4> o4, IObservable <T5> o5, Func <T1, T2, T3, T4, T5, Task <IComponent> > asyncGenerator, IComponent loadMessage) => DeferedComponent.Observe(o1, o2, o3, o4, o5, asyncGenerator, loadMessage);