Итак, у меня есть ретранслятор данных с некоторыми статистическими данными из источника данных, однако у меня также есть 3 кнопки, которые должны вести себя по-разному в зависимости от элемента ретранслятора данных.В тот момент, когда ретранслятор данных сначала загружается, он делает все как положено, однако, когда я начинаю быстро прокручивать элементы в ретрансляторе данных, кнопки меняются между собой, есть ли способ исправить это, например, только ретранслятор рисует свои элементыодин раз.Я устанавливаю кнопки следующим образом:
private void NotificationdataRepeater_DrawItem(object sender, Microsoft.VisualBasic.PowerPacks.DataRepeaterItemEventArgs e)
{
//Here we asign specific functions to the buttons depending on which type of notification
string type = "";
string subject = "";
for (int i = e.DataRepeaterItem.Controls.Count - 1; i >= 0; i--)
{
Control c = e.DataRepeaterItem.Controls[i];
if (c.Name.Contains("name"))
{
type = c.Text;
count++;
}
if (c.Name.Contains("sub"))
{
subject = c.Text;
count++;
}
if (c.Text == "button1")
{
if (type == "Afhaalkast")
{
c.Visible = false;
count++;
}
if (type == "Versie")
{
c.Visible = false;
count++;
}
if (type == "Recept Locatie")
{
c.Visible = false;
count++;
}
if (type.ToUpper().Contains("BEZORGING"))
{
c.Text = "Verplaats naar morgen";
c.Visible = true;
c.Click += (s, ex) =>
{
DateTime VolgendeDag = DateTime.Today.AddDays(1);
if (VolgendeDag.DayOfWeek == DayOfWeek.Saturday)
{
VolgendeDag.AddDays(2);
}
else if (VolgendeDag.DayOfWeek == DayOfWeek.Sunday)
{
VolgendeDag.AddDays(1);
}
char[] arr = new char[] { ' ' };
string[] parts = subject.Split(arr);
string receptnr = parts[3];
dbConn.UpdateBezorgingByRecept(VolgendeDag, receptnr, false, null, parts[7], parts[10], false);
dbConn.voegHistorieToeString(receptnr, "Bezorging verplaatst naar " + VolgendeDag.ToString("dd-MM-yyyy"));
setData();
};
count++;
}
if (type.ToUpper().Contains("OUDE"))
{
c.Text = "Naar afhaalkast";
AfhaalPanel ap = AfhaalPanel.GetInstance;
c.Click += (s, ex) => ap.BringToFront();
count++;
}
}
if (c.Text == "button2")
{
if (type == "Versie")
{
c.Visible = false;
count++;
}
if (type == "Recept Locatie")
{
c.Text = "Open instellingen";
AppContainer ac = AppContainer.GetInstance;
c.Click += (s, ex) => ac.instellingenTab_Click(s, ex);
count++;
}
if (type.ToUpper().Contains("RECEPT BEZORGING"))
{
c.Text = "Plaats in afhaalkast";
count++;
}
if (type == "Afhaalkast" || type.ToUpper().Contains("OUDE"))
{
c.Text = "Start met opruimen";
OudeRecepten oudeRecepten = new OudeRecepten();
c.Click += (s, ex) => oudeRecepten.Show();
count++;
}
}
if (c.Text == "button3")
{
Notification notification = null;
c.Text = "Negeren";
foreach (Notification n in notifications)
{
if (n.Name == type)
{
notification = n;
}
}
c.Click += (s, ex) => ignoreNotification(notification);
count++;
}
if (c.Name == "pictogram")
{
if (type == "Versie")
{
PictureBox pictogram = (PictureBox)c;
pictogram.Image = Properties.Resources.license_key;
count++;
}
if (type == "Recept Locatie")
{
PictureBox pictogram = (PictureBox)c;
pictogram.Image = Properties.Resources.backups;
count++;
}
if (type.ToUpper().Contains("RECEPT BEZORGING"))
{
PictureBox pictogram = (PictureBox)c;
pictogram.Image = Properties.Resources.package;
count++;
}
if (type == "Afhaalkast")
{
PictureBox pictogram = (PictureBox)c;
pictogram.Image = Properties.Resources.drawer;
count++;
}
if (type.ToUpper().Contains("OUDE"))
{
PictureBox pictogram = (PictureBox)c;
pictogram.Image = Properties.Resources.broom;
count++;
}
}
}
}
}
, и уведомление выглядит так (который используется как источник данных)
public class Notification
{
private string name;
public string notificationTime;
public string notificationSubject;
public string notificationType;
public Notification(string notificationName, string notificationTime, string notificationSubject, string notificationType)
{
this.name = notificationName;
this.notificationTime = notificationTime;
this.notificationSubject = notificationSubject;
this.notificationType = notificationType;
}
public string Name
{
get
{
return name;
}
set
{
name = value;
}
}
public string Time
{
get
{
return notificationTime;
}
set
{
notificationTime = value;
}
}
public string Subject
{
get
{
return notificationSubject;
}
set
{
notificationSubject = value;
}
}
public string NotificationType
{
get
{
return notificationType;
}
set
{
notificationType = value;
}
}
}
Я знаю, что мой код не такой чистый, нона данный момент это не приоритет, это будет исправлено позже