Comment modifier dynamiquement un contrôle WPF du modèle à l'aide d'une case à cocher?
J'ai un message d'erreur (illustré simplifié ci-dessous).
- Je afficher le Rapport objet dans un ContentControl à laquelle j'ai défini un Modèle simpleErrorTemplate.
Il y a un Case sur la Fenêtre que je voudrais utiliser pour changer le modèle de/de detailedErrorTemplate. Quelle est la meilleure façon d'atteindre cet objectif?
<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>
OriginalL'auteur chillitom | 2011-03-04
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser un DataTrigger dans le
ContentControl
Style où vous pouvez lier à laIsChecked
propriété de la ChkShowDetailsCheckBox
Mise à jour
Complète Xaml exemple, de le coller et de les essayer 🙂
Ne vous déplacez le Modèle de la ContentControl pour le Setter dans le Style?
Mise à jour de ma réponse. Vous devez juste être capable de copier/coller et de le comparer à votre code pour voir ce qu'il vous manque
merci, n'avait pas supprimé le Modèle de la ContentControl comme vous soupçonne
OriginalL'auteur Fredrik Hedblad
Cette Solution est pour ceux qui sont à la recherche de Modèle de swap.
Il est simple espère que cela vous aide. S'il vous plaît signaler toute erreur.
Suffit d'utiliser ce code pour changer le Modèle de case Cochée Événement.
consulter ce lien pour plus d'informations
http://developingfor.net/2009/01/09/dynamically-switch-wpf-datatemplate/
OriginalL'auteur Pradeep