Initialize button state icon by script

I try to create ui menu with script at start.

I use this for build menu:

void PopulateList () {
		foreach (var item in itemList) {

			GameObject newButton = Instantiate (sampleButton) as GameObject;
			SampleButton button = newButton.GetComponent <SampleButton> ();
			Button SampleButton = newButton.GetComponent <Button> ();
			Sprite SpriteState = SampleButton.GetComponent <SpriteState> ().highlightedSprite;

			button.name = item.name;
			button.button.image.sprite = item.icon;
			SpriteState = item.icon_h;
			button.button.onClick = item.thingToDo;
			button.tag = item.tag;
			newButton.transform.SetParent (contentPanel);

		}
	}

and this attached on Prefab button:

using UnityEngine;
using UnityEngine.UI;
using System.Collections;
public class SampleButton : MonoBehaviour {
	
	public Button button;
	public Image icon;
	public Button icon_h;
}

At start this is the error message:

ArgumentException: GetComponent requires that the requested component ‘SpriteState’ derives from MonoBehaviour or Component or is an interface.
UnityEngine.Component.GetComponent[SpriteState] ()
CreateModelScrollList.PopulateList () (at Assets/Libreria/Script/CreateModelScrollList.cs:73)
CreateModelScrollList.Start () (at Assets/Libreria/Script/CreateModelScrollList.cs:62)

Where i am wrong?
I am desperate…

After 3 hour I find… Little bit complicate (for me)…

void PopulateList () {
		foreach (var item in itemList) {

			GameObject newButton = Instantiate (sampleButton) as GameObject;
			SampleButton button = newButton.GetComponent <SampleButton> ();

			Sprite newSprite = item.icon_h;
			SpriteState st = new SpriteState();
			st.disabledSprite = newSprite;
			st.highlightedSprite = newSprite;
			st.pressedSprite = newSprite;
			SpriteState Spritebutton = st; 

            //button.nameLabel.text = item.name; !Attention!
			button.name = item.name;
			button.button.image.sprite = item.icon;
			button.button.spriteState = Spritebutton;
			button.button.onClick = item.thingToDo;
			button.tag = item.tag;
			newButton.transform.SetParent (contentPanel);

		}