Frage

Ich habe einen Textblock einer Benutzerkontrolle, die einen Konverter zum Anzeigen von Zahlen verwendet. Dieser Konverter wird zu Beginn der Anwendung in ein Ressourcenschutz geladen. Jetzt möchte ich diesen Konverter mit einem anderen austauschen, um ein anderes Format anzuzeigen, abhängig von einem Parameter in den App-Settings. Unglücklicherweise funktioniert nur ein Trigger. Ist es möglich, einen Konverter dynamisch in die Benutzerkontrolle zu laden und eine Referenz darauf aus einem Textblock zu setzen?

Bearbeiten: Hier ist mein Auslöserversuch:

<TextBlock>
       <TextBlock.Style>
                <Style>
                     <Style.Triggers>
                      <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType={x:Type mycontrol}, AncestorLevel=1}, Path=mode}" Value="0">
                            <Setter Property="TextBlock.Text" Value="{Binding RelativeSource={RelativeSource AncestorType={x:Type cg:Fader}, AncestorLevel=1}, Path=Figure, Converter={StaticResource ConverterA}}"/>
                      </DataTrigger>
                      <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType={x:Type mycontrol}, AncestorLevel=1}, Path=mode}" Value="1">
                            <Setter Property="TextBlock.Text" Value="{Binding RelativeSource={RelativeSource AncestorType={x:Type cg:Fader}, AncestorLevel=1}, Path=Figure, Converter={StaticResource ConverterB}}"/>
                      </DataTrigger>
                      </Style.Triggers>
                 </Style>
         </TextBlock.Style>
</TextBlock>
War es hilfreich?

Lösung

Der Grund, warum Trigger in Ihrem Beispiel nicht funktionieren, sind Bindungen. Gesamt Style + DataTriggers sind perfekt für die Auswahl der dynamischen Vorlage geeignet.

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