I have the following controls/views:
UserControl.Resources
I want to switch between my two ControlTemplates via the ToggleButton in the main application.
This should be very easy ... but I cannot find a proper way :S
A simpler solution is to bind to the content property of the content control and define datatemplates for each type of content.
<Window.Resources>
<DataTemplate DataType="{x:Type local:MyType1}">
<Border Background="Red" />
</DataTemplate>
<DataTemplate DataType="{x:Type local:MyType2}">
<Border Background="Green" />
</DataTemplate>
</Window.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="24" />
</Grid.RowDefinitions>
<ContentControl Content="{Binding MyContent}" />
<ToggleButton Grid.Row="1"
Content="Toggle"
IsChecked="{Binding IsChecked}" />
</Grid>
//DataContext
public bool IsChecked
{
get { return isChecked_; }
set
{
isChecked_ = value;
NotifyPropertyChanged_("IsChecked");
if (value)
MyContent = new MyType1();
else
MyContent = new MyType2();
}
}
public object MyContent
{
get { return myContent_; }
set
{
myContent = value;
NotifyPropertyChange_("MyContent");
}
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.