Probier mal PreviewXXX. Hab jedoch bei mir grad eben probiert und es funktionierte auch ohne, hängt aber von der Situation davon ab, ob das Event schon als Handled markiert wurde oder nicht.
Vielleicht liegst auch am Command. Wie erstellst du das Command?
Kannst du evtl etwas Code zeigen?
Hallo Hans_Rakete,
dies lässt sich wunderbar durch InputBindings in Kombination mit MousGestures bewerkstelligen. ++**:::
<Button>
<Button.InputBinding>
<MouseGesture Gesture="LeftDoubleClick"/>
</Botton.InputBinding>
</Button>
Gruß
Michael
Hallo stephh,
eine Kamera ist generell ein USB-Gerät, und wie man diese findet siehst du hier:
Get List of connected USB Devices
BZW:
var drives = DriveInfo.GetDrives().Where(di=>di.DriveType == DriveType.Removable);
Gruß
Michael
Und was noch wichtig ist:
Es soll keine Logik in den Properties vorhanden sein. Denn die Properties werden nie aufgerufen. Es sei denn druch deinen Code. Wenn du Logik in den Properties setzt und dort drinnen validierst, kann diese Property auch über Code durch SetValue(...,...) gesetzt werden und somit die Property Validation umgangen werden. Dazu gibt es beim Register der DependencyProperty die entsprechenden Überladungen.
Hallo Beathoven,
einfach gesagt: Ohne DependencyProperties kannst du dem Benutzer deines CustomControl kein Binding an den Eigenschaften anbieten.
Gruß
Michael
Wenn du in deiner Situation ein ' einfügen willst muss dieses Escaped werden. Dies ist aber das Problem bei selbst zusammengewuschtelte SQL-Statements, denn dort werden diese nicht escaped, bzw nicht bedacht. Dein Statement ist überhaupt nicht sicher (SQL-Injection).
Könntest du mir vielleicht den Code geben
4b: [Hinweis] Wie poste ich richtig?
Bitte zeig etwas mehr Eigeninitiative. Im vorher verlinkten Beitrag steht alles was du wissen musst.
Gruß,
Michael
Hallo c_sharp-programmer,
Wie kann ich das Reparieren?
Durch [Artikelserie] SQL: Parameter von Befehlen
Gruß,
Michael
Hallo Helgon,
Debug.WriteLine Trace.WriteLine
erstellt Ausgaben in die Konsole, oder bei Bedarf in ein Text Dokument, wenn demendsprechend ein TextWriterTraceListener den Listener angehängt wird.
Gruß
Michael
Hallo Coooder,
eine entsprechende Suche im Forum hätte gereitcht:
Forumssuche nach AutocompleteTextBox
AutocompleteTextBox mit Unterstützung von Phonetischen Algorithmen
Gruß
Michael
Hallo Enigma228,
Die Frage die sich immer stellt ist: Was funktioniert nicht, welcher Fehler tritt auf?
Was mir sofort auffällt:
INSERT INTO tabelle (9 Spalten) VALUES (8 Spalten)
Was dann noch schiefgeht siehst du an der Fehlermeldung. Z.B. ungültiger Typ, Zeichenkette zu lang, ect.
Lies dir zur Sicherheit noch [Artikelserie] SQL: Parameter von Befehlen durch.
Gruß,
Michael
Hallo raneu,
es funktioniert nicht, warum wurde gesagt:
Der Schein trügt: Du erstellst zwei Messages - einmal in XAML und einmal im Code.
D.h. du hast di Message des DataContext, falls du den nun setzt, und die Message des StaticResources. Für eines von Beidem musst du dich entscheiden.
Gruß,
Michael
Hallo inflames2k,
ich denke da wir ein seriösen Forum sein wollen, sollten wir inoffizielle wenn möglich auch nicht ganz so legale Dinge nicht unterstützten.
So weit ich weiß waren die Token bei ChevronWP7, welche Microsoft tolerierte aber nicht akzeptierte, auf 10.000 Stück limitiert und mittlerweile ausverkauft. Bis auf weiteres denke ich wird sich diesbezüglich nichts ändern.
Auf dem Offiziellen Weg gibt es nur eine Möglichkeit das Smartphone zu entsperren, und dies ist ein Developer Account. Ich habe meines durch einen Developer Account entsperrt, wenn auch nicht gegen Bezahlung da ich einen MSDNAA Account respektive DreamSpark Account besitzte und dadurch keine jährlichen Developer Account Kosten bezahlen muss.
Ich bitte um Verständnis dass ich auf die Anfragen bezüglich eines Jailbreaks nicht genauer eingehe.
Gruß,
Michael
Och, sorry,
nein dazu ist mir nichts bekannt und ich denke auch nicht dass dies in XAML direkt möglich sein wird.
Hallo ErfinderDesRades,
doch funktioniert, jedenfalls bei mir. Hab es wie folgt in einem meiner CustomControls und es funktioniert wunderbar:
<ControlTemplate.Resources>
<Storyboard x:Key="MinMaxReached">
<!--Was auch immer-->
</Storyboard>
</ControlTemplate.Resources>
<ControlTemplate.Triggers>
<EventTrigger RoutedEvent="MaximumReached">
<EventTrigger.Actions>
<BeginStoryboard Storyboard="{StaticResource MinMaxReached}" />
</EventTrigger.Actions>
</EventTrigger>
<EventTrigger RoutedEvent="MinimumReached">
<EventTrigger.Actions>
<BeginStoryboard Storyboard="{StaticResource MinMaxReached}" />
</EventTrigger.Actions>
</EventTrigger>
</ControlTemplate.Triggers>
Gruß,
Michael
Hallo Pez,
Thread.Sleep ist meist nicht das was gewollt wird, schon gar nicht bei so kurzem Interval.
Tastatureinschläge zeitecht wiedergeben dürfte nicht das Problem werden. Speichere den Zeitoffset mit. Bei der Wiedergabe kann dann evtl durch Benutzung eines Times das Interval gemäß des Intervals zum nächsten Input ändern.
Schwieriger wird es bei der Maus werden, da dort ein MouseMove öfters gefeuert wird als ein KeyDown der Tastatur. Dadruch würde ich vorschlagen bei einem MouseMove nur alle x ms die Position aufzuzeichnen. Bedenke immer die Echtzeit des Auges. Diese liegt bei 60ms.
Gruß
Michael
Hallo baer999,
zur Sicherheit mal, obwohl ich denke dass du den Artikel gelesen hast
[Artikelserie] SQL: Parameter von Befehlen
An sich sollte die Abfrage stimmen. Was du eventuell versuchen könnstest wäre folgendes:
LIKE %@paramter%
oder
LIKE @parameter
wobei du dann beim Letzeren
comm.Parameters.Add("@parameter",string.Format("%{0}%",meinWert));
erforderlich wäre.
Bezüglich Datenkonvertierungsfehler: Guck dir mal die Datentypen von Phone.Prefix und Phone.Suffix an und vergleiche ob diese mit @PhoneNumber übereinstimmen. Wenn nicht musst du ein CONVERT
oder CAST
in den richtigen Datentyp durchführen.
Gruß,
Michael
Hallo Grimmbizkit,
*unfuddle
*assembla
wären zwei Möglichkeiten welche gratis wären.
Gruß
Michael
Hallo Tobii5,
leider sind dies Grundlagen welche wir hier in diesem Forum voraussetzen. Auch lösen wir keine Hausaufgaben.
[Hinweis] Wie poste ich richtig? 1.1, 1.1.1, 4c
und jede Variabel durch ein "|" getrennt wird
Dies nennt sich CSV und wird generell mit einem ; gemacht.
Gruß
Michael
Also so kanns nicht funktionieren. Die Query kompiliert nicht mal. Da du Q,D,E auch dazu benötigst und nicht nach diesen gruppieren willst versuche es mal mit eine SubQuery:
SELECT * FROM Status_IP s1 WHERE timest >= ALL (Select s2.timest FROM Status_IP s2 where s2.Ip = s1.IP)
Lies dir evtl zusätzlich die Grundlagen von SQL durch, da du nicht um SQL rumkommen kannst.
Gruß,
Michael
Wie sieht denn z.Z. deine Query aus?
Was heißt sie passen nicht dazu? Sind sie falsch?
Was wird z.Z. ausgegeben?
Oh sry,
klar, es muss nach IP gruppiert werden.
Also: gruppiere nach IP, wähle dann das maximale Datum.
Nach Datum gruppieren und das Maximale wählen kann logischerweise nicht funktionieren. Mein Fehler
Hallo Killerkrümel,
normal müsste GROUP BY mit einem MAX kombiniert dir die richtigen Daten liefern:
SELECT MAX(datum)
FROM [...]
GROUP BY datum
Gruß,
Michael
Dies nennt sich Reflections, ja.
Aber die Frage die sich mir stellt ist, warum du den Benutzer bestimmen lassen willst welche Methode aufgerufen werden soll und warum du dies so machst bzw machen willst?
Welche Fehler (Exceptions) bei deinem Code auftreten können, siehst du in der Doku: Type.GetMethod Method (String)
Könntest du dich bitte ein bisschen klarer ausdrücken, damit wir genau verstehen was du machen willst, was bis jetzt funktioniert und was nicht?
Hallo TheCode,
ich versteh nicht wirklich was du machen willst.
Was wenn jemand HalloDuda eingibt? Soll dann die Methode HalloDuda aufgerufen werden? Wenn ja, ist das m.E. Unsinn und es sollte das Design überdacht werden.
Gruß,
Michael
Hallo #coder#,
ich denke dass ein Copyright unbedenklich sein wird! Dies kann ein jeder auf jeder seiner Arbeiten platzieren.
Bei einem Copyright ist zu beachten dass das "All rights reserved" nicht fehlen sollte.
Gruß,
Michael
Hallo Kackwiesel,
in WPF kann man es auch bewerkstelligen, dass nur der Piratenkopf der Button ist und nix anderes. Dies ist mit Expression Blend, wenn der Piratenkopf nicht allzu kompliziert ist, sehr einfach zu bewerkstelligen.
Wie so ein benutzerdefinierter Button aussieht und wie man diesen erstellt siehst du unter folgenden Links: *WPF: Customizing Controls *Custom Shaped Button *WPF Custom Controls - Without The Pain
Stichwort: Custom Shaped Button
Gruß
Michael
Hallo ponder,
ja dies nennt sich Reflection
. Darüber findest du zig Themen im Forum.
Gruß,
Michael
Hallo herbivore,
hab mich etwas ungünstig ausgedrückt. Hab natürlich nicht gemeint, dass man das Dispose auf der PictureBox.Image direkt aufruft, sondern dass das Image Disposed werden muss, unabhängig der PictureBox. Wollte mit pictureBox1.Image.Dispose()
nur aufzeigen welches Image Disposed werden muss.
Hallo sowas1111,
Die Datei wird zwar nach erfolgreichem Laden wieder geschlossen aber die das Bild wird "gesperrt" und wird erst in dem Moment freigegeben sobald das Image
disposed wird, also sobald du pictureBox1.Image.Dispose()
aufrufst oder dies irgendwie anderweitig aufgerufen wird, z.b. durch Schließen des Fensters.
Gruß
Michael
Auf oberster Ebene nutzt es nicht mehr spezielle Fehlerbehandlung zu machen. Ich mach dies dort nur zum Fehlerloggen. Der Sinn ist auch dass das Programm nicht abstürtzt.
Hallo oehrle,
die Application_DispatcherUnhandledException
muss in der App.xaml oder dem Constructor abonniert werden, sonst wird kein unbehandelter Fehler abgefangen.
Gruß
Michael
Hmm...ich befürchte, dass das stimmt. Leider fällt mir z.Z. auch nichts anderes ein als für jedes Datum ein eigenes DataTemplate zu definieren.
Ja das funktioniert, denn du gibst im DataGridTemplateColumn bereits an welchen Wert du binden willst, dementsprechend sollte im DataTemplate folgendes ausreichen:
<DataTemplate>
<DatePicker SelectedDate="{Binding}" BorderThickness="0"/>
</DataTemplate>
Hallo wickedcsharper,
bins mal ganz schnell überflogen, ohne wirklich die genaue Vorhergehensweise genauer anzusehen. Was mir sofort auffällt ist dass nicht SqlParameter verwendet werden, welches den User zu SQL-Injection verleiten kann. M.E. ist es nicht besser selbst erstellte O/R zu verwenden, wenn die fertigen Lösungen wie nHibernate und Entity Framework super funktionieren. Diese Lösungen sind dazu auch noch getestet und bewährt.
Noch dazu: Wenn mit SqlParamteren gearbeitet wird muss kein Wert explizit geparst werden.
Sämtliche SqlConnection und SqlCommand sollten in using Blöcke eingeschlossen werden damit die angeforderten resource auch wieder freigegeben werden.
Gruß
Michael
Hallo KPhoenix,
Wie kann ich erreichen, dass die DataTemplates auf das Binding zugreifen können?
Das machen sie alleine.
Wie kann ich ein DataTemplate als Resource definieren und dann im DataGrid sagen, dass dieses Template jetzt verwendet werden soll?
<Window.Resources>
<DataTemplate x:Key="Templ1">
[...]
</DataTemplate>
<DataTemplate x:Key="Templ2">
[...]
</DataTemplate>
</Window.Resrouces>
<DataGridTemplateColumn CellEditingTemplate="{StaticResource Templ1}" CellTemplate="{StaticResource Templ2}" />
Gruß
Michael
Hallo InSiDeR,
fange alle Fehler auf höchster Ebene ab und gib diese aus, oder logge sie, dann kannst du mehr mit dem Grund des Absturzes anfangen.
Stichwort: Unhandled Exceptions
Gruß
Michael
Ok, so wie ich es verstanden habe,
dann ist das Problem in derselben Art und Weiße zu lösen wie ich es im vorhin im angehängten Projekt aufgezeigt hatte.
Gruß
Michael
Wo hängst du dann jetzt genau?
hab ich dich richtig verstanden dass du folgendes erreichen willst:
1:= Checked 0:= Unchecked
C1 1
C2 0 => Männlich
C3 0
C1 1
C2 1 => Männlich, Weiblich
C3 0
C1 0
C2 1 => Weiblich, N/A
C3 0
Oder was soll genau der Converter bei dir berechnen, bzw schlussendlich was und wo angezeigt werden.
Wenn der ConvertBack aufgerufen wird, passiert dies auch.
Ich hab dir mal ein Testproject angefügt. Dabei werden die Comboboxen aktualisiert wennman in der TextBox was ändert, und die TextBox wird aktualisiert falls man in einen der ComboBoxen was ändert. Ich denke an sich ist das Programm selbsterklärend.
vermutlich ist es nicht möglich mittels MultiBinding an drei Objekte zu binden
Doch, dazu gibt es die ConvertBack Methode.
--------
| Quelle1 \
| Quelle2 > Convert < Ziel
| Quelle3 / --------
-------- / Quelle1 |
Ziel > ConvertBack < Quelle2 |
\ Quelle3 |
---------
Irgendwie verstehe ich deinen Converter nicht. Er gibt auch verschiedene Typen zurück. Normal sollte es sein dass der Converter aufgrund der übergebenen Daten etwas neues berechet und dies zurückgibt. Diese Rückgabe sollte danach auch in XAML Verwendung finden.
Wenn du nur an den DataContext bindest, jedoch diesen DataContext nie benutzt, kann es nicht funktionieren. Noch dazu dass du den bereits existierenden DataContext des WrapPanels nach dem ersten konvertieren durch das Binding neu setzt und dadruch alle Bindings welche vorher existierten gelöscht werden.
Ich mach mal ein etwas anderes Beispiel:
<TextBox Name="TextBox1"/>
<TextBox Name="TextBox2"/>
<TextBox Name="TextBox3"/>
<Button>
<Button.Background>
<Multibinding Converter={StaticResource ColorConverter}>
<Binding Path="Text" ElementName="TextBox1"/>
<Binding Path="Text" ElementName="TextBox2"/>
<Binding Path="Text" ElementName="TextBox3"/>
</Multibinding>
<Button.Background>
</Button>
public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
byte r = Convert.ToByte(values[0]);
byte g = Convert.ToByte(values[1]);
byte b = Convert.ToByte(values[2]);
return Color.FromRgb(r,g,b);
}
versuch dieses Beispiel mal anzuwenden, vielleicht verstehst du dann den MultiValueConverter besser. Evtl hilft ein Brakepoint in Convert um die übergebenen Daten anzusehen.
Hallo informant,
nein die Ausgabe ist korrekt! Du solltest dringendt die Grundlagen zur Vererbung durchlesen, denn du überschreibst die Methoden mit new
. Und dies ist so gut wie immer der falsche und nicht gewünschte Weg. Wenn du willst dass die Methoden überschrieben werden, so sag dies bereits in der Abstracten Base Class dadurch dass du die durch Interface aufgezwungene Methode virtual
declarierst. Dann kannst du in den Kinderklassen auch mit override
arbeiten.
Deine Klassen- und Intefacenamen sind grauenhaft und entsprechen keinem Standard.
Bitte lies auch folgende Artikel durch:
1.1 & 1.1.1 [Hinweis] Wie poste ich richtig?
[Hinweis] Syntaxfehler selbst lösen (Compilerfehlermeldungen)
Gruß
Michael
Ja das Multibinding hast du richtig verstanden. Das Einzige auf was du aufpassen musst ist dass du die Reihenfolge des Bindings immer identisch machst.
Denn
<!--kopiert aus MSDN -->
<MultiBinding Converter="{StaticResource myNameConverter}">
<Binding Path="FirstName"/>
<Binding Path="LastName"/>
</MultiBinding>
ist grundsätzlich nicht gleich:
<MultiBinding Converter="{StaticResource myNameConverter}">
<Binding Path="LastName"/>
<Binding Path="FirstName"/>
</MultiBinding>
Denn dann sind die Eigenschaften im object[] values
wie erwartet vertauscht.
D.h. das ConvertBack liefert je nach ausgewählter CheckBox andere Werte?
Wenn ja lässt sich dies dann mit einem MultiBinding lösen, dem dann kannst du dem Converter die Statuse der anderen CheckBoxen mitgeben, oder du stellst in der CodeBehind Datei sicher dass bei setzen einer Eigenschaft irgendwas gemacht wird. So z.b.
public bool IsMaleSelected
{
set
{
[...]
ProcessGenderChange();
}
get { [...] }
}
public bool IsFemaleSelected{set{[...]}{get{[...]}}
public bool IsNotSpecifiedSelected{set{[...]}{get{[...]}}
private void ProcessGenderChange()
{
//hier kannst du nun auf die Änderung reagieren und du hast auch auf die notwendigen Daten Zugriff.
}
Hallo Hans_Rakete,
ich versteh nicht genau was du erreichen willst. Was sind genau die Situationen die du in der Datenschicht und welchen du in der GUI-Schicht anfinden willst?
Der Converter ersetzt ja gar nichts, sonst hiese er Replacer, er konvertiert nur Werte für und von der GUI.
Gruß
Michael
Hallo Kingkook,
also generell funktioniert dies ja auch, jedoch bist du schön in die Falle der Optionalen Paramtern getappt.
Der Fehler liegt aus damit auch nicht beim Konstruktor sondern beim Aufruf dessen.
D.h. wenn du willst die zweite Überladung aufrufen musst du es wie folgt machen:
new MyElement(collector,null,null "start", "to", "ende");
bzw für null die entsprechenden default Werte Einsetzen. So einfach zwischendrinn Parameter auslassen funktioniert nur wie folgt:
new MyElement(collector,pSearchParams: new string[]{"start", "to", "ende"});
Natürlich gilt immer die Devise, dassman das Werkzeug welches man benutzt auch beherrscht. Ich kann auch nicht eine Nagelpistole verwenden, mit der Absicht dass ich die Nägel schneller und ohne Kraftaufwand reinhauen kann, wenn ich dann damit eine Glasscheibe montieren will.
Gruß
Michael
Hallo brev,
dieses Problem löst man unter Verwendung von DataTemplates:
<ComboBox ItemTemplate="{StaticResource MyCbTempl}" />
<!--in der resource Datei, oder unter Window.Resources oder wo auch immer -->
<DataTemplate x:Key="MyCbTempl">
<StackPanel>
<TextBlock Text="{Binding Path=Nachname}"/>
<TextBlock Text="{Binding Path=Vorname}"/>
</StackPanel>
</DataTemplate>
edit: Es ginge auch ohne ItemTemplate, mit DisplayMemberPath, jedoch kann dort nur eine Eigenschaft gewählt werden.
Gruß
Michael
Hallo rollerueckwaerts,
man kann XML deserializen zu C# Objects. Wie man dies für Eigenschaften macht welche in XML nicht dem Namen der Eigenschaft entspricht siehtst du Serialize and Deserialize Objects as XML
Gruß
Michael