Laden...

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

Erstellt von SenseLi vor 9 Jahren Letzter Beitrag vor 9 Jahren 892 Views
S
SenseLi Themenstarter:in
3 Beiträge seit 2014
vor 9 Jahren
converter: Ungültige Typumwandlung von "10" nach double

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ß

1.378 Beiträge seit 2006
vor 9 Jahren

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

S
SenseLi Themenstarter:in
3 Beiträge seit 2014
vor 9 Jahren

Hallo,

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

Danke

849 Beiträge seit 2006
vor 9 Jahren

Hi,

deine Methode heist auch Convert, deshalb kann der Compiler das nicht durch das using auflösen. Er denkt du meinst deine eigene Methode.

S
SenseLi Themenstarter:in
3 Beiträge seit 2014
vor 9 Jahren

Hi,

ok, das hab ich übersehen...
</Verwirrt>