Ho una finestra di dialogo di errore (mostrato di seguito semplificato).Come modificare dinamicamente il modello di un controllo WPF utilizzando una casella di controllo?
ho visualizzare il report oggetto in un ContentControl a cui ho definito un modello di simpleErrorTemplate.
C'è un CheckBox sulla finestra che vorrei utilizzare per cambiare il modello da/per detailedErrorTemplate. Qual è il modo migliore per raggiungere questo obiettivo?
<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>
grazie, ho dato a questo una prova e anche se non sembra funzionare, lo stile non viene aggiornato – chillitom
@chillitom: Did si sposta il modello dal ContentControl alla Setter in stile? –
@chillitom: Aggiornato la mia risposta. Si dovrebbe solo essere in grado di copiare/incollare che e confrontarlo con il codice per vedere cosa vi state perdendo –