public static Element Body(string txt, TodoServiceClient repository) { return(CreateElement((state) => { var(count, setCount) = state.CreateState(0); var(showAddWindow, setShowAddWindow) = state.CreateState(false); var(showAll, setShowAll) = state.CreateState(false); IEnumerable <Todo> GetTodos(bool showAll) { return repository.GetTopTodos().Where(todo => showAll || !todo.Compleated).ToArray(); } var(selectedTodo, setSelectedTodo) = state.CreateState <Todo>(null); var builder = new DelegateTreeBuilder <Todo>(todo => showAll ? todo.Children : todo.UncompletedChildren); return Container(height: Dim.Fill(), width: Dim.Fill(), contents: new[] { VStack(height: Dim.Fill(), width: Dim.Fill(), contents: new[]
public static Element TreeView <T>(T[] root, AspectGetterDelegate <T> aspectGetter, DelegateTreeBuilder <T> treeBuilder, IEqualityComparer <T> equalityComparer = null, Action <T> objectActivated = null, Action <T> selected = null, Pos x = null, Pos y = null, Dim width = null, Dim height = null) where T : class { return(new TreeViewElement <T> { Root = root, AspectGetter = aspectGetter, TreeBuilder = treeBuilder, EqualityComparer = equalityComparer, ObjectActivated = objectActivated, Selected = selected, X = x, Y = y, Width = width, Height = height }); }