Stap 5: Sleuf datastructuren en methoden
Deze stap maakt de gegevensstructuur die nodig zijn voor het opslaan van de gegevens op de
extra "slots". Maar eerst, open het bestand MyControl.xaml.cs en verwijderen van de methode button1_Click() gemaakt door de wizard een berichtvenster worden weergegeven wanneer de knop Origineel er was. Omdat we de knop uit de XAML bestand hebt verwijderd kunnen wij deze methode wissen. Na het wissen van de button1_Click()-methode moet de MijnBesturingselement klasse bijna leeg en er als volgt uitzien:
openbare gedeeltelijke klasse MijnBesturingselement: UserControl
{
openbare MyControl()
{
InitializeComponent();
}
}
Let´s maken sommige particuliere velden voor deze klasse voor het opslaan van de gegevens. Eerst maken we twee constanten die slaat het maximum aantal "slots" (5) en het maximum aantal geschiedenis hebben elke sleuf (10).
Private const int MAX_SLOTS = 5;
Private const int MAX_SLOT_HISTORY = 10;
Vervolgens moet een veld voor het opslaan van de weergave die het mogelijk maken de toegang tot het huidige venster van de code. Deze variabele is het gegevenstype van een interface: iWpTextView.
privé IWpfTextView-weergave;
Het volgende veld is de gegevensstructuur die bevatten alle gegevens voor de "slots zal". Het is een matrix waarin elk element is een lijst van strings. De grootte van de matrix wordt verkregen uit de MAX_SLOTS-constante.
privé lijst [] aClipboadSlotData = nieuwe lijst [MAX_SLOTS];
Deze vier velden zijn dat alles wat we tot nu toe nodig. Nu moeten we voor het initialiseren van de aClipboardSlotData met lege tekenreeksen. Wij zullen dat doen op een nieuwe methode genaamd InitializeClipBoard(), die de volgende broncode heeft:
Hiermee stelt u de beginwaarden van de structuur-aClipboadSlotData van gegevens
private void IntilializeClipBoard()
{
for (int i = 0; ik < MAX_SLOTS; i ++)
{
aClipboadSlotData [i] = nieuwe List();
for (int j = 0; j < MAX_SLOT_HISTORY; j ++)
{
aClipboadSlotData [i]. Invoegen (j, "");
}
}
}
De inhoud van de InitializeClipBoard() is in principe twee geneste for-lussen. De externe voor lus gebruik de i integer variabele naar elk element van de matrix, die de "slots". Voor elke sleuf instantiëren we een nieuwe lijst van strings. De interne for-lus invoegen een lege tekenreeks op aClipboadSlotData [i] de met behulp van de methode van de Insert() van de lijst gegevenstype.
Wij moeten de InitializeClipBoard() binnen de constructor van de klasse MijnBesturingselement net na het aanroepen van InitializeComponent(). Tot nu toe de MijnBesturingselement klasse uitziet.
openbare gedeeltelijke klasse MijnBesturingselement: UserControl
{
Private const int MAX_SLOTS = 5;
Private const int MAX_SLOT_HISTORY = 10;
privé IWpfTextView-weergave;
privé lijst [] aClipboadSlotData = nieuwe lijst [MAX_SLOTS];
openbare MyControl()
{
InitializeComponent();
Toevoegen van de lege slots
IntilializeClipBoard();
}
Hiermee stelt u de beginwaarden van de structuur-aClipboadSlotData van gegevens
private void IntilializeClipBoard()
{
for (int i = 0; ik < MAX_SLOTS; i ++)
{
aClipboadSlotData [i] = nieuwe List();
for (int j = 0; j < MAX_SLOT_HISTORY; j ++)
{
aClipboadSlotData [i]. Invoegen (j, "");
}
}
}
}