Инициализация массива типизированных массивов на странице бритвы - PullRequest
0 голосов
/ 07 февраля 2020

Здесь я пытаюсь создать экземпляр инициализированного массива и связать его с компонентом Blazor . Это своего рода массив массивов. Но они набираются, и первый из них инкапсулируется в класс.

Класс сбора данных первого уровня (LinkArray):

public class LinkArray
{
        // constructor will automatically generate the addresses if not given
        public LinkArray(string[] params links)
        { ... }

        public Link[] Links { get; set; }

        public Link Header { get; set; } 

}

Класс ссылок:

public class Link
{
    public string Title { get; set; }
    public string Address { get; set; }
}

Инициализация в секции кода файла .razor :

    @code{
    //LinkArray[] allColz;

    // Method 1 : creating LinkArrays individually, and then trying to add each 
    // It has a constructor that can handle it via just passing the first parameter
    LinkArray firstCol = new LinkArray("asd","asdasd","asdasd");
    LinkArray secondCol = new LinkArray("asd","asdasd","asdasda","asdasd");

    //LinkArray[] allColz = new LinkArray[] { 'firstCol', 'secondCol' };
    List<LinkArray> allColz = new List<LinkArray>() { 'How to add firstCol & secondCol here');
}

Использование:

<CustomComp AllColz="@allColz" />

Как инициализировать и заполнить allColz с помощью firstCol & secondCol показано выше?

Ответы [ 2 ]

0 голосов
/ 09 февраля 2020

Изменен первый уровень массивов данных на static

static LinkArray firstCol = new LinkArray("asd","asdasd","asdasd");
static LinkArray secondCol = new LinkArray("asd","asdasd","asdasda","asdasd");

, а затем добавлен в следующей строке:

LinkArray[] allColz = new LinkArray[] {firstCol, secondCol };
0 голосов
/ 08 февраля 2020

Использование довольно просто:

<CustomComp AllColz="@allColz" />

Таким образом, в коде вашего компонента должно быть

[Parameter] List<LinkArray> AllColz {get;set;}

См. справочник параметров

I Мне не понятно, почему вы настраиваете это свойство в коде компонента. Если вы хотите создать значение в компоненте, а затем получить к нему внешний доступ (например, из родительского компонента), то вы можете использовать метод, который возвращает значение, вместо использования Parameter, например

@code 
{
   public List<LinkArray> GetAllColz() 
   {
     return allColz;
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...