Laden...
Avatar #avatar-3236.jpg
xxMUROxx myCSharp.de - Member
Student + Programmierer Südtirol/Italien Dabei seit 11.01.2010 1.552 Beiträge
Benutzerbeschreibung

Forenbeiträge von xxMUROxx Ingesamt 1.552 Beiträge

16.02.2012 - 19:40 Uhr

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?

16.02.2012 - 18:28 Uhr

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

16.02.2012 - 18:19 Uhr

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

15.02.2012 - 16:31 Uhr

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.

15.02.2012 - 12:05 Uhr

Hallo Beathoven,

einfach gesagt: Ohne DependencyProperties kannst du dem Benutzer deines CustomControl kein Binding an den Eigenschaften anbieten.

Gruß
Michael

14.02.2012 - 16:24 Uhr

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

14.02.2012 - 16:04 Uhr

Hallo c_sharp-programmer,

Wie kann ich das Reparieren?

Durch [Artikelserie] SQL: Parameter von Befehlen

Gruß,
Michael

11.02.2012 - 15:25 Uhr

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

10.02.2012 - 18:06 Uhr

Hallo Coooder,

eine entsprechende Suche im Forum hätte gereitcht:
Forumssuche nach AutocompleteTextBox
AutocompleteTextBox mit Unterstützung von Phonetischen Algorithmen

Gruß
Michael

07.02.2012 - 18:50 Uhr

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

07.02.2012 - 18:42 Uhr

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

04.02.2012 - 11:22 Uhr

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

04.02.2012 - 10:40 Uhr

Och, sorry,

nein dazu ist mir nichts bekannt und ich denke auch nicht dass dies in XAML direkt möglich sein wird.

04.02.2012 - 10:24 Uhr

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

03.02.2012 - 21:47 Uhr

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

03.02.2012 - 09:39 Uhr

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

02.02.2012 - 20:35 Uhr

Hallo Grimmbizkit,
*unfuddle *assembla

wären zwei Möglichkeiten welche gratis wären.

Gruß
Michael

31.01.2012 - 20:35 Uhr

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

30.01.2012 - 13:06 Uhr

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

30.01.2012 - 12:29 Uhr

Wie sieht denn z.Z. deine Query aus?

30.01.2012 - 12:18 Uhr

Was heißt sie passen nicht dazu? Sind sie falsch?
Was wird z.Z. ausgegeben?

30.01.2012 - 11:50 Uhr

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

30.01.2012 - 11:34 Uhr

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

29.01.2012 - 20:46 Uhr

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)

29.01.2012 - 20:39 Uhr

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?

29.01.2012 - 20:26 Uhr

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

29.01.2012 - 18:47 Uhr

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

29.01.2012 - 17:52 Uhr

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

29.01.2012 - 16:04 Uhr

Hallo ponder,

ja dies nennt sich Reflection. Darüber findest du zig Themen im Forum.

Gruß,
Michael

28.01.2012 - 11:38 Uhr

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.

28.01.2012 - 11:12 Uhr

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

28.01.2012 - 10:06 Uhr

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.

27.01.2012 - 17:13 Uhr

Hallo oehrle,
die Application_DispatcherUnhandledException muss in der App.xaml oder dem Constructor abonniert werden, sonst wird kein unbehandelter Fehler abgefangen.

Gruß
Michael

26.01.2012 - 10:24 Uhr

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.

26.01.2012 - 09:59 Uhr

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>

26.01.2012 - 09:46 Uhr

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

26.01.2012 - 09:27 Uhr

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

26.01.2012 - 08:15 Uhr

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

25.01.2012 - 19:41 Uhr

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

25.01.2012 - 17:01 Uhr

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.

25.01.2012 - 16:00 Uhr

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.

25.01.2012 - 14:58 Uhr

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 |
                     ---------

25.01.2012 - 14:37 Uhr

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.

25.01.2012 - 12:31 Uhr

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

24.01.2012 - 23:14 Uhr

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.

24.01.2012 - 22:57 Uhr

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.
}

24.01.2012 - 22:38 Uhr

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

24.01.2012 - 16:32 Uhr

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

24.01.2012 - 09:00 Uhr

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

23.01.2012 - 15:43 Uhr

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