2019-10-15 17일차 팝업패널 제작

Console Programming/C# Console 2019. 10. 15. 18:07

 

 

 

Program.cs

namespace Syntax01
{
    class Program
    {
        static void Main(string[] args)
        {
            new App();
        }
    }
}

 

App.cs

using System.Collections.Generic;

namespace Syntax01
{
    public class App
    {
        List rewardDataList;
        public App()
        {

            //보상 데이터를 10개를 만들었다.
            var data1 = new RewardData("지도", 1);
            var data2 =  new RewardData("장비상자", 1);
            var data3 = new RewardData("약초", 10);

            rewardDataList = new List();
            rewardDataList.Add(data1);
            rewardDataList.Add(data2);
            rewardDataList.Add(data3);

            //이벤트버튼 생성
            Button btn = new Button("이벤트버튼");

            //이벤트팝업 생성
            UIPopupEvent popup = new UIPopupEvent(this.rewardDataList);

            btn.Click(popup);

        }
    }
}

 

UIPopupEvent.cs

using System;
using System.Collections.Generic;

namespace Syntax01
{
    public class UIPopupEvent
    {
        public UIPopupEvent(List list)
        {
            Console.WriteLine("팝업이 생성되었습니다.");

            for(int i =0; i<list.Count; i++)
            {
                RewardData data = list[i];
                new RewardPanel(i+1, data);
            }

        }
        public void OpenPopup()
        {
            Console.WriteLine("팝업이 열렸습니다");

        }
        public void Close()
        {
            Console.WriteLine("팝업이 닫혔습니다");
        }
    }
}

 

Button.cs

using System;

namespace Syntax01
{
    public class Button
    {
        public string name;
        public Button(string name)
        {
            Console.WriteLine("버튼이 생성되었습니다.");

            this.name = name;
        }
        public void Click(UIPopupEvent popup)
        {
            Console.WriteLine("버튼이 클릭되었습니다.");

            popup.OpenPopup();
        }
    }
}

 

RewardPanel.cs

namespace Syntax01
{
    public class RewardPanel
    {
        public TextField tfDay;
        public TextField tfName;
        public TextField tfAmount;
        public RewardPanel(int day, RewardData data)
        {
            tfDay = new TextField(day + "일차");
            tfName = new TextField(data.name);
            tfAmount = new TextField(data.amount.ToString());

        }
    }
}

 

TextField.cs

using System;

namespace Syntax01
{
    public class TextField
    {
        
        public TextField(string text)
        {
            Console.WriteLine($"{text} 를 화면에 보여줍니다");

        }        
    }
}

 

RewardData.cs

namespace Syntax01
{
    public class RewardData
    {
        public string name;
        public int amount;
        public RewardData(string name, int amount)
        {
            this.name = name;
            this.amount = amount;
        }
    }
}

 

 

 

: