我有一個錯誤對話框(如下簡化顯示)。如何使用複選框動態更改WPF控件的模板?
我顯示給我所限定的模板simpleErrorTemplate在ContentControl中的報告對象。
上有,我想用的模板更改爲/從detailedErrorTemplate窗口中的複選框。達到此目的的最佳方法是什麼?
<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>
謝謝,我考慮了一個嘗試,雖然它似乎沒有工作,作風不更新 – chillitom 2011-03-04 10:17:59
@chillitom:難道您將模板從ContentControl移動到樣式中的Setter? – 2011-03-04 10:20:27
@chillitom:更新了我的答案。你應該能夠複製/粘貼,並將其與你的代碼進行比較,看看你丟失了什麼 – 2011-03-04 10:24:57