Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
converter: Ungültige Typumwandlung von "10" nach double
SenseLi
myCSharp.de - Member



Dabei seit:
Beiträge: 3

Themenstarter:

converter: Ungültige Typumwandlung von "10" nach double

beantworten | zitieren | melden

Hallo zusammen,

ich bin ziemlich neu bei C# und versuche mir grade eine Datenbindung zwischen Slider und
Textbox zu bauen.

Beim Slider habe ich einen Converter angehängt der einen Fehler zurückgibt, den ich nicht nachvollziehen kann:

slider XAML:


<Slider Name="slideMaxX"  Minimum="1" Maximum="50" Value="{Binding ElementName=txtMaxX, Path=Text, Mode=TwoWay, Converter={StaticResource RoundingConverter}}" SmallChange="1">

Der RoundingConverter:


using System;
using System.Windows.Data;

namespace gol
{
    
    public class RoundingConverter : IValueConverter  
    { 
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
        { 
            if (value != null) 
            {
                double dblValue;
                dblValue =(double)value; //Fehler: Kann nicht konvertieren
                //dblValue = Convert.ToDouble(value);//Fehler:Convert ist Methode...Kontext n. gültig
                return (int)dblValue; 
            } 
            return 0; 
        } 
 
        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
        { 
            throw new NotImplementedException(); 
        } 
    } 
} 

Der Versuch mit "dblValue=(double)value" zu konvertieren bringt einen Typumwandlungsfehler (bei value="10")
Mit "dblValue = Convert.ToDouble(value)" bekomme ich die Meldung, das Convert unbekannt ist.

bin für jeden Tip dankbar.

Gruß
private Nachricht | Beiträge des Benutzers
xxxprod
myCSharp.de - Experte

Avatar #avatar-2329.gif


Dabei seit:
Beiträge: 1420
Herkunft: Österreich\Wien

beantworten | zitieren | melden

Hallo SenseLi,

du kannst entweder den FullQualifiedName der Convert Klasse probieren: System.Convert.ToDouble()

oder du prüfst bevor du konvertierst um welchen QuellTyp es sich handelt und reagierst darauf entsprechend:

in deinem Fall kommt vermutlich ein String "10" den du mit double.Parse() umwandeln könntest.

Lg, XXX
private Nachricht | Beiträge des Benutzers
SenseLi
myCSharp.de - Member



Dabei seit:
Beiträge: 3

Themenstarter:

beantworten | zitieren | melden

Hallo,

der FullQualifiedName hat es gelöst: System.Convert.ToDouble()
Verstehe ich aber nicht, ich habe doch "Using.System" angegeben.
Verwirrt...

Danke
private Nachricht | Beiträge des Benutzers
unconnected
myCSharp.de - Member

Avatar #avatar-3200.jpg


Dabei seit:
Beiträge: 862
Herkunft: Oerlinghausen/NRW

beantworten | zitieren | melden

Hi,

deine Methode heist auch Convert, deshalb kann der Compiler das nicht durch das using auflösen. Er denkt du meinst deine eigene Methode.
private Nachricht | Beiträge des Benutzers
SenseLi
myCSharp.de - Member



Dabei seit:
Beiträge: 3

Themenstarter:

beantworten | zitieren | melden

Hi,

ok, das hab ich übersehen...
</Verwirrt>
private Nachricht | Beiträge des Benutzers