Pregunta

Tengo un bloque de texto de un control de usuario que usa un convertidor para mostrar figuras. Este convertidor se carga en un recursos de recursos al comienzo de la aplicación. Ahora me gustaría intercambiar este convertidor con otro, para mostrar un formato diferente, dependiendo de un parámetro en los ajustes de la aplicación. Desafortunadamente, usar solo un gatillo no funciona. ¿Es posible cargar un convertidor dinámicamente en el control del usuario y poner una referencia en él de un bloque de texto?

EDITAR: Aquí está mi intento de gatillo:

<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>
¿Fue útil?

Solución

La razón por la cual los desencadenantes no funcionan en su ejemplo es en los enlaces. General Style + DataTriggers son perfectamente adecuados para la selección de plantillas dinámicas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top