Frage

Ich bin auf einer Silverlight-Steuerelement mit Vorlagen arbeiten (das heißt leitet es von Steuerung und sein Aussehen als Control in generic.xaml umgesetzt hat) und über die Notwendigkeit eines Valueconverter kam in einer meiner Bindungen. Normalerweise würde ich nur eine Instanz des Valueconverter in den Ressourcen der Steuerung erstellen mit arbeiten, aber ich kann nicht herausfinden, wie das mit einem Control zu tun. Ich mag diese Umsetzung alle, wenn möglich in XAML halten, aber ich nehme an, ich OnApplyTemplate außer Kraft setzen könnte und manuell die Bindung mit einem Konverter erstellen.

War es hilfreich?

Lösung

Dies funktioniert in Silverlight 3. Sie müssen nur einen Abschnitt Ressourcen in Ihrem Control Template hinzuzufügen und die Valueconverter auf die Ressourcen des Template hinzu:

<ControlTemplate TargetType="controls:MyControl">
    <Grid Margin="8,40,8,20" x:Name="peopleListContainer">        
        <Grid.Resources>
            <controls:MyValueConverter x:Key="converter" />
        </Grid.Resources>
        <!-- ....

Allerdings ValueConverters werden häufig in Steuerungsvorlagen mißbraucht. Vielleicht möchten Sie stattdessen einen Typeconverter verwenden. Bryant Likes schrieb einen guten Artikel zum Thema die Unterschied zwischen Valueconverter und Typeconverter in diesem Szenario .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top