Die meisten MSDN Beispiele sind Code der sich sowohl als C als auch als C++ übersetzen und ausführen lässt.
Davon abgesehen hast du ein Beispiel in einer imperativen curly-brace Sprache, und ne Referenzdoku. Das sollte wohl ausreichend sein um den Code selbst runterzutippen, selbst wenn das Beispiel nicht 1:1 übernommen werden kann.
Vorausgesetzt natürlich du kannst programmieren.
Gelöst:)
Das binding muss so aussehen:
Visibility="{Binding IsFooterContentSet,
Converter={StaticResource trueVisibleConverter},
RelativeSource={RelativeSource TemplatedParent}}
das ich auf ein template binde:
Style x:Key="{x:Type controls:Table}" TargetType="{x:Type controls:Table}">
<Setter Property="HeadlineHeight" Value="78" />
<Setter Property="Template">
naja whatever, WPF is nich mein fall, verstanden hab ich es nich, aber es geht:)
DarkShadow44 schrieb:
hustbaer schrieb:
Er hat aber keine DLL, sondern eine .NET Assembly.
Wenn schon hostet man die CLR,
lol
Was soll das denn bringen?
DarkShadow44 schrieb:
oder nimmt gleich C++/CLI.
Mhm.
Na dann hätten wir das jetzt auch geklärt. Wunderbar, wieder eine Frage weniger auf die die Welt eine Antwort sucht.
Es wird alles korrekt ausgeführt.
Sobald in Zeile 58 sowohl der Konstruktor für flieger1 als auch flieger2 aufgerufen worden sind, sind beide Ereignismethoden registriert und werden dann bei flieger1.Steuern() und flieger2.Steuern() jeweils ausgegeben (Zeilen 3/4 und 5/6 deiner Konsolenausgabe). Die Reihenfolge entspricht dabei der Registrierung, d.h. jeweils erst für flieger1, dann für flieger2.
Und nachdem flieger3 registriert ist, werden dann jeweils 3 Zeilen je Steuern()-Aufruf ausgegeben (Zeile 8 - 16).
Und nach dem Deregistrieren von flieger2 dann nur noch jeweils für flieger1 und flieger3.
Und wie du siehst, ist es egal für welche Flieger-Instanz du dessen Steuern()-Methode aufrufst, es werden immer alle registrierten (bzw. man nennt dies eigentlich 'abonnierten') Ereignismethoden aufgerufen (ein Delegat speichert intern auch die zugehörige Instanz, für die es registriert wurde - im Gegensatz z.B. zu Klassenmethodenzeigern in C++, wo erst beim Aufruf die Instanz festgelegt wird).
Mechanics schrieb:
Weil du Anfängerfragen stellst. So toll wird dein Spiel also nicht sein. Man muss ja nicht gleich immer seine ersten Gehversuche verkaufen wollen.
Naja. Mein Spiel müsste sowieso erst einmal durch Steam Greenlight kommen.
Haa! Ähnelt meinem aktuellen Projekt :). -Gantt kommt auch vor.
Ich habe es so gelöst, dass ich die eine Canvas oder zwei als Childs an der Haupt-Canvas anhänge und und die Linie dort zeichne.
hauptcanvas.Children.Add(unterobject.untercanvas);
Auf der Hauptcanvas malst Du deine geom. Objekte wie Linie
in XAML setzt Du einfach die Canvas im Hauptfenster und positionierst es mit dem Layout editor.
http://msdn.microsoft.com/de-de/library/ie/bg124101(v=vs.85).aspx
http://msdn.microsoft.com/de-de/library/system.windows.controls.canvas(v=vs.110).aspx
hat sich erledgit. Eine ListView war Enabled und hat immer den Fokus bekommen, wenn ich eine Taste gedrückt habe. Da diese aber noch leer war, hab ich es nicht bemerkt.
sun-ja schrieb:
Ich habe genau deinen Code implementiert
Die Antwort ist eigentlich ziemlich nutzlos. Korrekt wäre, wenn du uns hier ein kleiner Auschnitt, am besten einen Beispielcode präsentierst. Sonst können wir weiterhin nur Rätselraten. Auch ist die Fehlerbeschreibung äusserst dürftig. "Geht nicht" ist keine Fehlerbeschreibung.
Aber ich mache mal ein bisschen Rätselraten, weil mir grad drum war. Dabei nehme ich an, dass der Fehler wie folgt lautete:
System.Windows.Data Error: 2 : Cannot find governing FrameworkElement or FrameworkContentElement for target element. BindingExpression:Path=Items; DataItem=null; target element is 'CollectionViewSource' (HashCode=29666725); target property is 'Source' (type 'Object')
Probier daher mal das da:
<Window.Resources>
<CollectionViewSource Source="{Binding Path=Items}" x:Key="cvs">
<CollectionViewSource.SortDescriptions>
<scm:SortDescription PropertyName="Position" />
</CollectionViewSource.SortDescriptions>
</CollectionViewSource>
</Window.Resources>
...
<ItemsControl ItemsSource="{Binding Source={StaticResource cvs}}" />
Hallo zusammen
Eine Frage zum EntityFramework 6.1. Hoffe hier kennen sich ein paar aus.
Ich erzeuge mir ein neues Object (Entity) und füge es mit Attach dem DbContext hinzu.
Das Objekt besitzt nun Schlüssel zu anderen Objekten in der Datenbank.
Einträge werden nun nach SaveChanges korrekt in die Datenbank eingefügt. Aber nur bei den Tabellen bei dennen eine n:n Beziehung bestehen zum eingefügten Objekt. Bei einer 1:n Beziehung nicht.
Kann mir das jemand erklären. (Hoffe das meine Erklärung auch verständlich ist).
freakC++ schrieb:
Dazu muss zunächst die "GetObjectData" Methode implementiert werden und außerdem wird zur Deserialisierung ein bestimmter Konstruktor der Form
Ehm, Du "musst" nicht, Du "kannst". Man kann GetObjectdata und den CTor überschreiben wenn man custom serialisieren will. Solange die standard Serialisierung des Framework für Dich OK ist musst Du lediglich [Serializble] auf den Childklassen setzen, also:
[Serializable]
class bla { }
freakC++ schrieb:
Wie löse ich am besten das Problem ohne in jeder Kindklasse den gleichen Code zu kopieren?
Wenn die Klassen unterschiedliche Parameter haben musst Du eine Custom-Serialisierung eh pro Klasse implementieren, daran kommst Du nicht vorbei. Die Basisklasse kann schließlich nicht die Parameter der Childs kennen.
Es ist vollbracht
@Dravere, @Th69, Euch beiden gilt mein ganzer Dank. Es funktioniert nun.
Des Rätsels Lösung: pack=1
Dravere, Dein Tipp war also genau der richtige.
Interessant und beeindruckend finde ich, wie schnell Du eine Ferndiagnose gemacht hast.
Zwar hatte ich mich über pragma... gewundert. Aber nachdem ich in zwei Büchern nichts gefunden habe, habe ich es als irrelevant ignoriert.
So kann man sich täuschen. Und wieder etwas gelernt.
Ich danke Euch beiden nochmals und wünsche Euch ein sonniges Wochenende
Liebe Grüße
Wedgewood
Erstmal das ganze Gedöns in ein List<List<string>> einlesen und diese Listen dann parsen. In Abhängigkeit der Units erstellst Du eben Objekte des richtigen Typs in einer kleinen Factory-Methode.
Hingefrickelt:
static List<List<string>> LoadCSV(string filepath, char separator)
{
if (!File.Exists(filepath))
throw new ArgumentException(string.Format("File {0} does not exist", filepath));
var lines = File.ReadAllLines(filepath).ToList();
var res = new List<List<string>>(lines.Count);
lines.ForEach(line =>
{
var split = line.Split(new char[] { separator }, StringSplitOptions.RemoveEmptyEntries);
if (split != null && split.Length > 0)
res.Add(new List<string>(split));
});
return res;
}
Anmerkung: RemoveEmptyEntries ist evtl nicht was du willst. Denn bei festen Positionen ist es sinnvoller die Leereinträge nicht auszusortieren.
List<List<string>> csv = LoadCSV(@"C:\test.csv", ';');
foreach(var line in csv)
{
string itemType = line[2];
if(itemType == "WS_Gruppe_Statuswort")
{
}
else if (itemType == "WS_M1_Sollwert_Aut")
{
}
//...
}
Ich wollte nur mal anmerken, dass Arrays in C# mit dem Defaultwert des Typs initialisiert werden. Die Schleife ist also unnötig, womit die ganze Funktion rausfliegen kann.
Hab jetzt auch herrausgefunden, dass der Window-Thread vom MainWinHandle das system auslastet!
Die Frage ist was ich machen!? WPF hat ja nen Rendering-Thread und nen UI Thread zur usser interaktion, abee wie stehen die in Verbindung mit dem nativen Winthread des Process mainwinhandle!?
Ich bin ratlos:(