MultiSlot Urklipp (5 / 9 steg)
Steg 5: Slot datastrukturer och metoder
Detta steg kommer att skapa den datastruktur som behövs för att lagra data på den
extra platser. Men först, öppna filen MyControl.xaml.cs och ta bort den metod button1_Click() skapats av guiden att visa en meddelanderuta när knappen original var där. Eftersom vi bort knappen från filen XAML kan vi radera denna metod. Efter radering den button1_Click() metoden bör klassen MinKontroll nästan tom och se ut så här:
offentliga partiell klass MinKontroll: UserControl
{
offentliga MyControl()
{
InitializeComponent();
}
}
Let´s skapa några privata fält för den här klassen att lagra data. Först skapar vi två konstanter som lagrar det maximala antalet platser (5) och det maximala antalet historia att varje fack har (10).
privata const int MAX_SLOTS = 5;
privata const int MAX_SLOT_HISTORY = 10;
Sedan behöver vi ett fält för att lagra att ge tillgång till nuvarande kod-fönstret. Denna variabel har datatypen för ett gränssnitt: iWpTextView.
privata IWpfTextView vyn;
Följande fält är den datastruktur som innehåller alla data för slots. Det är en matris där varje element är en lista med strängar. Storleken på matrisen erhålls från den MAX_SLOTS konstanten.
privat lista [] aClipboadSlotData = ny lista [MAX_SLOTS];
Dessa fyra fält är allt vi behöver hittills. Nu behöver vi att initiera aClipboardSlotData med tomma strängar. Vi kommer att göra det på en ny metod som kallas InitializeClipBoard(), som har följande källkoden:
Uppsättningar startvärdena i data struktur aClipboadSlotData
privata void IntilializeClipBoard()
{
för (int jag = 0; jag < MAX_SLOTS; i ++)
{
aClipboadSlotData [i] = nya List();
för (int j = 0; j < MAX_SLOT_HISTORY; j ++)
{
aClipboadSlotData [i]. Infoga (j, "");
}
}
}
Innehållet i InitializeClipBoard() är i grunden två kapslade i loopar. Externa för loop användning i heltalsvariabel att gå till varje element i matrisen, som är tiderna. För varje plats initiera vi en ny lista med strängar. Den interna ögla för att infoga en tom sträng på aClipboadSlotData [i] den med metoden Insert() i listan datatyp.
Vi måste kräva InitializeClipBoard() inuti konstruktorn för klassen MinKontroll strax efter anropet till InitializeComponent(). Hittills har klassen MinKontroll ser ut så här.
offentliga partiell klass MinKontroll: UserControl
{
privata const int MAX_SLOTS = 5;
privata const int MAX_SLOT_HISTORY = 10;
privata IWpfTextView vyn;
privat lista [] aClipboadSlotData = ny lista [MAX_SLOTS];
offentliga MyControl()
{
InitializeComponent();
Lägga till tomma platser
IntilializeClipBoard();
}
Uppsättningar startvärdena i data struktur aClipboadSlotData
privata void IntilializeClipBoard()
{
för (int jag = 0; jag < MAX_SLOTS; i ++)
{
aClipboadSlotData [i] = nya List();
för (int j = 0; j < MAX_SLOT_HISTORY; j ++)
{
aClipboadSlotData [i]. Infoga (j, "");
}
}
}
}