Domanda

Ho un blocco di testo di un controllo utente che utilizza un convertitore per visualizzare le figure. Questo convertitore viene caricato in un risorse all'inizio dell'applicazione. Ora vorrei scambiare questo convertitore con un altro, per visualizzare un formato diverso, a seconda di un parametro nelle impostazioni di app. Sfortunatamente usando solo un grilletto non funziona. È possibile caricare un convertitore dinamicamente nel controllo dell'utente e inserire un riferimento da un blocco di testo?

EDIT: ecco il mio tentativo di innesco:

<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>
È stato utile?

Soluzione

Il motivo per cui i trigger non funzionano nel tuo esempio è nei legami. Complessivamente Style + DataTriggers sono perfettamente adatti per la selezione dinamica del modello.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top