Ich aktualisiere eine Listbox über eine Datenbank und eine der Spalten, die ich einfügen möchte, ist ein Kontrollkästchen. Dieses Update wird von einem Threadpool verarbeitet und ich kann die Daten ohne Ausnahme für das Kontrollkästchen einfügen. Wenn ich das Kontrollkästchen erstelle, wird das xaml anstelle des Checkbox-Elements angezeigt. heißtC# Threadpool Erstellen von UI-Element
System.Windows.Controls.Checkbox Inhalt: IsChecked: False
Definition von NotesReminderViewDetails
private struct NotesRemindersViewDetails
{
public string NoteReminderID { get; set; }
public string NoteReminderEnterDate { get; set; }
public string NoteReminderDueDate { get; set; }
public string NoteReminderConents { get; set; }
public CheckBox NoteReminderCompleted { get; set; }
}
Hier ist der Code, den ich die Listenansicht zu aktualisieren verwende. NoteReminderType
ist eine Struktur mit allen Notizen/Erinnerungsinformationen.
NoteReminderType noteType = noteReminder.NoteReminderDetails;
NotesRemindersViewDetails noteReminderDetails = new NotesRemindersViewDetails();
noteReminderDetails.NoteReminderID = noteType.UserFriendlyNoteReminderID.ToString();
noteReminderDetails.NoteReminderEnterDate = noteType.InsertionDate.ToShortDateString();
noteReminderDetails.NoteReminderDueDate = noteType.DueDate.ToShortDateString();
noteReminderDetails.NoteReminderConents = noteType.Description;
listViewNotesReminders.Dispatcher.Invoke(DispatcherPriority.Normal, new Action(delegate()
{
noteReminderDetails.NoteReminderCompleted = new CheckBox();
listViewNotesReminders.Items.Add(noteReminderDetails);
}));
Was muss ich ändern, damit das Kontrollkästchen anstelle der XAML-Form des Threadpool-Threads angezeigt wird?
EDIT
Hier ist der XAML-Code für die Listenansicht
<ListView.View>
<GridView>
<GridViewColumn Header="ID" Width="20" DisplayMemberBinding="{Binding Path=NoteReminderID}" />
<GridViewColumn Header="Entered Date" Width="Auto" DisplayMemberBinding="{Binding Path=NoteReminderEnterDate}" />
<GridViewColumn Header="Due Date" Width="75" DisplayMemberBinding="{Binding Path=NoteReminderDueDate}" />
<GridViewColumn Header="Note Contents" Width="300" DisplayMemberBinding="{Binding Path=NoteReminderConents}" />
<GridViewColumn Header="Completed" Width="Auto" DisplayMemberBinding="{Binding Path=NoteReminderCompleted}" />
</GridView>
</ListView.View>
Gibt es einen bestimmten Grund, CheckBox anstelle von "bool" Feld zu verwenden? – ShahidAzim
Ich möchte, dass der Benutzer den Status der Notiz/Erinnerung ändern kann, indem er das Kontrollkästchen aktiviert, um es als abgeschlossen zu markieren. – Wesley
Sie mischen Daten und Präsentation mit einem Steuerelement in 'NotesRemindersViewDetails'. Außerdem ist es viel üblicher, eine Klasse als eine Struktur zu verwenden. –