• Как внутри функции с generic запустить цикл в цикле на react?

    bingo347
    @bingo347 Куратор тега TypeScript
    Crazy on performance...
    Нужно ограничить дженерик, иначе там может оказаться любой тип, а в Object.entries любой тип отдать нельзя.
    interface TableProps<T extends Record<string, unknown>> {
        entities: T[] | null; // тут возможно еще стоит сделать это поле необязательным?
    }
    
    const Table = function <T extends Record<string, unknown>>({
        entities,
    }: TableProps<T>) {
        // ...
        return (<>
            {entities?.map((entity, key) => {
                return Object.entries(entity).map(([key, value], index) => {
                    // ...
                });
            })}
        </>);
    }
    Ответ написан
    1 комментарий
  • Как задать высоту блокаисходя из соседнего блока в ReactJS?

    @historydev
    Редактирую файлы с непонятными расширениями
    const el = React.createRef();
    const [height, setH] = useState();
    
    useEffect(() => setH(el.current.style.height));
    
    <div ref={el} />
    <div style={{height: height}}/>
    Ответ написан
    5 комментариев
  • Как заполнить treeview ( treenode ) данными из datatable?

    FoggyFinder
    @FoggyFinder
    Можно преобразовать DataTable к строго типизированной коллекции с помощью метода AsEnumerable. Тогда вы сможете сделать группировку значений с помощью метода GroupBy.

    После этого заполнить TreeView не составит труда.

    Пример

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            var treeView = new TreeView
            {
                Dock = DockStyle.Fill
            };
            this.Controls.Add(treeView);
    
            var dt = GetDataTable();
            PopulateTreeViewFromDataTable(treeView, dt);
        }
    
        private DataTable GetDataTable()
        {
            var dt = new DataTable("Цемент");
    
            dt.Columns.AddRange(new[] {
                new DataColumn("Name"),
                new DataColumn("NameOfCement")
            });
    
            dt.Rows.Add("Портланд", "Вихрь");
            dt.Rows.Add("Романцемент", "Тайга");
            dt.Rows.Add("Романцемент", "Свой");
            dt.Rows.Add("Алумацемент", "Курон");
    
            return dt;
        }
    
        public void PopulateTreeViewFromDataTable(TreeView tv, DataTable dataTable)
        {
            var data =
                dataTable
                    .AsEnumerable()
                    .Select(row => new
                    {
                        Name = row.Field<string>("Name"),
                        Cement = row.Field<string>("NameOfCement")
                    })
                    .GroupBy(x => x.Name);
    
            tv.Nodes.Clear();
    
            var root = tv.Nodes.Add(dataTable.TableName);
            foreach (var gr in data)
            {
                var node = root.Nodes.Add(gr.Key);
                foreach (var subItem in gr)
                {
                    node.Nodes.Add(subItem.Cement);
                }
            }
        }
    }


    Результат

    60856a498cd61836541563.jpeg
    Ответ написан
    Комментировать
  • Не показывается код элемента в форме в winform c#?

    BasiC2k
    @BasiC2k
    .NET developer (open to job offers)
    Кроме создания элемента, ему нужно присвоить какие-то свойства, а потом добавить на форму (или панель).
    Добавьте кнопку на форму и поиском в коде просмотрите все этапы. Потом сверьте с проблемной кнопкой - чего не хватает.
    Ответ написан
    1 комментарий
  • Как добавить метод добавления книг?

    Morpheus_God
    @Morpheus_God
    Как то сложно все у вас выходит.
    Если хотите сделать некую модель библиотеки над книгами то как вариант, тут не конечное решение вашей проблемы, но может натолкнет вас.
    Есть модель книги
    public class Book
        {
            public string Name { get; set; }
            public string Author { get; set; }
        }

    Есть класс обертка над списком(Библиотекой). Тут вы можете реализовать любые методы для фильтрации и вывода нужной вам информации. Как пример я описал метод добавления книги.
    public  class Library
        {
            private List<Book> books;
    
            public Library()
            {
                books = new List<Book>();
            }
    
            public IEnumerable<Book> GetAllBooks { 
                get
                {
                    return books;
                }
             }
    
            public void AddBook(Book b)
            {
                books.Add(b);
            }
    
        }

    Ну и место где все это связывается и выводится
    class Program
        {
            static void Main(string[] args)
            {
                var library = new Library();
    
                library.AddBook(new Book { Author = "Пушкин", Name = "Руслан и Людмила" });
                library.AddBook(new Book { Author = "Булгаков", Name = "Мастер и Маргарита" });
    
    
                foreach(var book in library.GetAllBooks)
                {
                    Console.WriteLine($"{book.Author} {book.Name}");
                }
    
    
                Console.ReadLine();
    
            }
        }
    Ответ написан
    5 комментариев