Hallo Leute,
ich hab ein ItemsControl, welches Objecte von unterschiedlichen Typen enthält(haben eine gemeisame Basisklasse, was aber nich relevant ist)
Nun sind diese Klassen in eine Assembly in verschieden Namespaces vorhanden!
Die Möglichkeit Type eines Assembly via Reflection zu scannen ist klar, aber ich möchste nun auch DataTemplate welche jeweil zu den kontreten Klassen gehöhren in meinen DataTemplateSelector verwenden!
d.h. ich muss erst mal herrausfinden, welche Typen ich habe, und ob diese auch einen Datentemplate haben! wie mach ich das am besten!?
Grüße und Guten Abend
Das seh ich, da der inhalt nur in einem textblock angezeigt ist!
Die Fehlermneldung ist, dass das Property "MyText" nicht im DataContent Context vorhanden ist... was ja auch stimmt!
Ich dachte das ginge ohne probleme , jetzt muss ich den datenkontext rein verbiegen.. gefällt mir nich)
1. Ich öffne die Dateien mit dem OpenFileDialog
2. Zuweisung der Excel-Datei, Workbooks und Sheets mit Interop.Excel
3. Speichern der ersten Zeile als Titles[] (für ComboBox)
4. Durch if-Schleife wird (begonnen bei Zeile i=2) die "erste" Zeile der Daten, die durch die ComboBox zugewiesen wurde, mit einer Methode der Google API verarbeitet
5. In derselbigen if-Schleife werden die verarbeiteten Daten per StreamWriter in die neue csv.Datei in Zeile i geschrieben
EDIT: Das Video sieht interessant aus, ich versuche es mal damit, vielen Dank Bei Problemen melde ich mich nochmal^^
TBBox[] ToDo = new TBBox[nNode];
jetzt hast ein array welches "referenzen" sprich "pointer" in deinem fall vom typ TBBox enthält!
ToDo[0] = new TBBox(...);
erstellen ein Box object, und die referenz in dein array ablegen
.. psseude code.. nich getestet..
Also das ich der markupextension ein Bindung Objekt übergebe aber wie mach ich das? Da die markupextension nich von dependencyobjekt erbt, kann ich da auch kein dependencyproperty anlegen.. Das is mein Problem!?
Lösung?
Hallo,
in einem DataGridView habe ich einen DateTimePicker.
Dem Picker weise ich beim Load Event der Form folgendes zu:
dtpNeueBestellungLiefertermin = new DateTimePicker();
dtpNeueBestellungLiefertermin.Format = DateTimePickerFormat.Short;
dtpNeueBestellungLiefertermin.Visible = false;
dgNeueBestellungBestellpositionen.Controls.Add(dtpNeueBestellungLiefertermin);
dtpNeueBestellungLiefertermin.ValueChanged += this.dtpNeueBestellungLiefertermin_ValueChanged;
Beim Ändern des Wertes (Klick in die Zelle) erhalte ich die Fehlermeldung:
private void dgNeueBestellungBestellpositionen_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)
{
try
{
if ((dgNeueBestellungBestellpositionen.Focused) && (dgNeueBestellungBestellpositionen.CurrentCell.ColumnIndex == 6))
{
dtpNeueBestellungLiefertermin.Location = dgNeueBestellungBestellpositionen.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, false).Location;
dtpNeueBestellungLiefertermin.Visible = true;
if (dgNeueBestellungBestellpositionen.CurrentCell.Value != DBNull.Value)
{
dtpNeueBestellungLiefertermin.Value = (DateTime)dgNeueBestellungBestellpositionen.CurrentCell.Value; // hier wird die Fehlermeldung ausgelöst
}
else
{
dtpNeueBestellungLiefertermin.Value = DateTime.Today;
}
}
else
{
dtpNeueBestellungLiefertermin.Visible = false;
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}
In der Zeile dtpNeueBestellungLiefertermin.Value = (DateTime)dgNeueBestellungBestellpositionen.CurrentCell.Value; kommt die Fehlermeldung.
Die Zeile im DataGridView fülle ich "von Hand":
string[] row0 = { "", bestellposition.ID, bestellposition.Bezeichnung, bestellposition.Nummer, bestellposition.Norm, bestellposition.Preis.ToString(), DateTime.Today.ToShortDateString() };
dgNeueBestellungBestellpositionen.Rows.Add(row0);
Übergebe ich das Datum falsch zum DataGridView?
Auch DateTime.Today.ToString("MM.mm.yyyy"); verursacht eine Fehlermeldung.
Ok vielen dank Jungs,
dann schau ich mir das mal an:)
Wichtig ist, dass ich beim reflection der gesamten Ableitungshierachie eindeutige Propertynamen habe bzw. immer die höchst mit "new" überschrieben zurück bekomme!!
Grüße:)
Hallo,
leider habe ich gerade keine deutsche Tastatur. Von daher entschuldigt die Fehler.
So, also ich wuerde gerne mal wissen, was du genau vor hast. Solltest du deine Anwendung einfach nur nett aussehen lassen wollen obwohl der Sinn dieser Anwendung ein anderer ist, dann kann ich dir eher davon abraten. Ich sprech da wirklich aus eigener Erfahrung. Wir sind naemlich auch ein bisschen auf die Schnauze gefallen als wir dann unsere echt geil ausehende Anwendung ausgerollt haben, und dann feststellten, dass alles extrem lahmt. Problem ist, dass unsere Anwednung zwar nur intern benutzt wird aber trotzdem kannst du dich nicht darauf verlassen, dass die Rechner halbwegs performant sind. Wir haben uns dann teilweise mit WPF Anwendungen auf XP Rechnern ohne gescheite GraKa rumschlagen muessen. Im Endeffekt aben wir alles was mit Effekten zu tun hatte wie Gradients, Blurs und wie sie nicht alle heissen rausgeworfen. Die muss eben klar sein, dass WPF eigentlich nichts anderes als ein "Grafikframework" ist das intern mit DirectX arbeitet.
Will dir hier natuerlich nicht sagen was du zu tun hast sondern die nur auf die Fallstricke aufmerksam machen die dich erwarten koennten;-)
Trotzdem....Viel Glueck
Hast du bei den Forms auch immer KeyPreview auf 'true' gesetzt?
PS: Die Shift-Taste ist eigentlich nur ein 'ModifierKey', d.h. nur in Verbindung mit anderen Tasten gültig und sollte nicht als eigene Taste angesehen und abgefragt werden. Nimm doch besser die 'ESC'-Taste.
Sobald du TextBoxen, Shortcut-Keys o.ä. hast, kommst du (bzw. der Anwender!) eh in Schwierigkeiten...
Für den Doppelklick solltest du die Prieview-Events mal anschauen.
Und fürs unscharf ich würde ich dir den dropshadow Effekt vorschlagen, musst aber etwas mit rumspielen.
Grus mdn