Frage

Gibt es eine Möglichkeit, einen Wert zu einem Textblock zu binden, das aus einem Verfahren erhalten wird. Zum Beispiel gebe ich mein Person-Objekt in die HierarchicalDataTemplate, von dort ich sein Gewicht Eigenschaft zugreifen kann. Nun sagen wir ich das Gewicht in Mars erhalten möchten, würde ich die InMars Methode aufrufen, die einen Parameter int EarthWeight nimmt. Jetzt earthweight wird sich ändern, von Person zu Person, wie kann dieser Parameter jedes Mal eingestellt werden?

War es hilfreich?

Lösung

Der beste Weg, dies zu tun ist mit einem Konverter.

public class WeightOnMarsConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        // value will be the persons weight
    }
    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new NotSupportedException("This method should never be called");
    }
}

Dann brauchen Sie nur die Bindung einzurichten.

<l:WeightOnMarsConverter x:key="weightOnMars" /> <-- Add this to the resources

{Binding Path=Weight, Converter={StaticResource weightOnMars}}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top