Tengo un cuadro de diálogo de error (se muestra simplificado a continuación).¿Cómo cambiar dinámicamente una plantilla de control WPF usando una casilla de verificación?
puedo mostrar la Informe objeto en un ContentControla la que he definido una plantilla simpleErrorTemplate.
hay una casilla en la ventana que me gustaría utilizar para cambiar la plantilla a/desde detailedErrorTemplate. ¿Cuál es la mejor manera de lograr esto?
<Window x:Class="Core.ErrorDialog"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Window.Resources>
<ControlTemplate x:Key="simpleErrorTemplate">
<TextBox Margin="10,10,10,5" TextWrapping="Wrap" VerticalScrollBarVisibility="Auto" Text="{Binding Message}" />
</ControlTemplate>
<ControlTemplate x:Key="detailedErrorTemplate">
<TextBox Margin="10,10,10,5" TextWrapping="Wrap" VerticalScrollBarVisibility="Auto" Text="{Binding Message}" />
<TextBox Margin="10,10,10,5" TextWrapping="Wrap" VerticalScrollBarVisibility="Auto" Text="{Binding Details}" />
<TextBox Margin="10,10,10,5" TextWrapping="Wrap" VerticalScrollBarVisibility="Auto" Text="{Binding StackTrace}" />
</ControlTemplate>
</Window.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="50" />
</Grid.RowDefinitions>
<ContentControl Grid.Row="0" Template="{StaticResource simpleErrorTemplate}" DataContext="{Binding Report}"/>
<CheckBox Margin="10,0,0,0" Grid.Row="1" x:Name="ChkShowDetails">Show Details</CheckBox>
</Grid>
</Window>
gracias, le he dado una oportunidad, aunque y que no parece funcionar, el estilo no se actualiza – chillitom
@chillitom: Did Mueves la Plantilla del ContentControl al Setter en el Estilo? –
@chillitom: Actualizado mi respuesta. Deberías poder copiarlo y pegarlo y compararlo con tu código para ver lo que te falta –