2014-02-04 1 views
1

Я пытаюсь сделать программу, которая делает колоду, перетасовывает ее, а затем с каждой кнопкой нажимает карту, нарисованную и выложенную.Ссылка на список <T> с ImageList?

Поскольку мои знания в программировании очень ограничены, я очень плохо планирую вперед, а вместо этого просто получаю общую картину того, что хочу, и в конце концов делаю это шаг за шагом.

Моя проблема сейчас в том, что я закончил с список, содержащий мою палубу, как это:

 //Creates a list of cards 
    protected List<Card> _cards = new List<Card>(); 

    public List<Card> _Cards 
    { 
     get { return _cards; } 
     set { _cards = value; } 
    } 

    /// <summary> 
    /// One complete deck with every face value and suit 
    /// </summary> 
    /// <remarks></remarks> 
    public Deck() 
    { 
     foreach (Suit suit in System.Enum.GetValues(typeof(Suit))) 
     { 
      foreach (FaceValue faceVal in System.Enum.GetValues(typeof(FaceValue))) 
      { 
       _cards.Add(new Card(suit, faceVal)); 
      } 
     } 
    } 

, а затем у меня есть ImageList, содержащий все изображения, как это:

public void LoadImages() 
    { 
     ImageList cardList = new ImageList(); 

     cardList.ImageSize = new Size(71, 96); 
     // Clover 
     cardList.Images.Add("c1", Properties.Resources.c1); 
     cardList.Images.Add("c2", Properties.Resources.c2); 
     cardList.Images.Add("c3", Properties.Resources.c3); 

// Deleted some here, you get the point. 

     cardList.Images.Add("sj", Properties.Resources.sj); 
     cardList.Images.Add("sq", Properties.Resources.sq); 
     cardList.Images.Add("sk", Properties.Resources.sk); 
     cardList.Images.Add("s10", Properties.Resources.s10); 
    } 

The Deck List находится в библиотеке классов, ImageList находится в библиотеке пользовательского контроля ... Как я могу объединить эти две команды?

+1

Добавьте изображение, как свойство к классу карты. Это должно решить вашу проблему. Когда вы создаете свои карты, вы также можете добавить изображение? – 8bitcat

ответ

1

Создайте новый класс, который содержит оба элемента в качестве ссылки.

public class ImageCard 
{ 
    public Card TheCard { get; set; } 
    public Image TheImage { get; set; } 

} 

или получить новый класс из карты, которая имеет ссылку на изображение (или наоборот)

public class CardEx : Card 
{ 
    public Image TheImage { get; set; } 

} 

Затем использовать либо один, чтобы сделать обработку по мере необходимости.

Смежные вопросы