Я пытаюсь программно добавить изображения в список / массив и получить к ним доступ для каждого l oop, чтобы изменить их исходное изображение. - PullRequest
0 голосов
/ 11 марта 2020

Я пытался добавить изображения в массив и затем получить доступ к их свойствам, чтобы изменить их исходное изображение в al oop.

Подробно: я создаю сетку с макетом для каждого для каждого элемента сетки в этом макете есть GridImage, исходная папка которого установлена ​​на «ClosedFolder.png», когда я щелкаю один из макетов, он должен изменить папку с выбранными макетами на «OpenFolder.png».

for (int eachCount = 0; eachCount <= MaxRows / MaxCols; eachCount++)
{
    Selectedrid.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(80, GridUnitType.Absolute) });
    for (int newCol = 0; newCol <= MaxCols; newCol++)
    {
        for (int newRow = 0; newRow <= MaxRows / MaxCols; newRow++)
        {
            if (folderIndex >= DirectoryArrayList.Count) { break; }
            var folder = DirectoryArrayList[folderIndex];
            var label = new Label()
            {
                Text = folder.Name,
                FontSize = 12,
                VerticalTextAlignment = TextAlignment.Center,
                HorizontalTextAlignment = TextAlignment.Center
            };
            var GridImage = new Image() { Source = "ClosedFolder.png", StyleId = "Image" };
            var GridTap = new TapGestureRecognizer();
            var Layout = new StackLayout() { StyleId = "StackContent" };
            var folderSelection = _mainFolder + "/" + folder.Name;
            GridTap.Tapped += async(object sender, EventArgs e) =>
            {
                FileHandler.CreateTextFiles(folderSelection, "File_" + FileID + ".txt");
                files = FolderOptions.AddFilesToList(folderSelection);
                lst.ItemsSource = files;
                //foreach (Image img in ImageList) I know this i incorrect, just an example of what I think!
                //{
                //    img.Source = "ClosedFolder.png";
                //}
                GridImage.Source = "OpenFolder.png"; // clicked layout gets its openfolder.png
            };
            Layout.Children.Add(label);
            Layout.Children.Add(GridImage);                            
            Layout.GestureRecognizers.Add(GridTap);
            Selectedrid.Children.Add(Layout, newCol, newRow);
            folderIndex += 1;
            FileID += 1;
        }
    }
}

Не уверен в объявлении массива и как его реализовать.

1 Ответ

0 голосов
/ 11 марта 2020

Я добавил следующее в свой метод BasicGrid ...

 var GridImage = new Image() { Source = "ClosedFolder.png", StyleId = "Image" }; 
 var ImageList = new List<Image>{};
 ImageList.Add( GridImage );
 for (var i = 0; i < ImageList.Count; i++)
     {
         var img = ImageList[i];
         img.Source = "ClosedFolder.png";
     } GridImage.Source = "OpenFolder.png"

Просто добавляю, чтобы сказать, что информация Джейсона - наиболее вероятное направление, в котором я буду go, но, поскольку я все еще учусь, оно будет потрать меня время и я не хочу держать это открытым, пока я делаю это: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...