我的任务是创建DataTemplate列表,并创建一个用于更改视图的按钮。 我有“数据”和“FootballTeam”类,我也有静态资源。我需要按钮事件的帮助,如何更改当前模板?
作为提示,该示例说使用此方法:
“this.Resources [resource-key] as data-type;”
XAML:
<Window x:Class="WpfApplication11.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow"
Height="250"
Width="300">
<Window.Resources>
<DataTemplate x:Key="teamName">
<TextBlock FontWeight="Bold"
Text="{Binding Path=TeamName}"></TextBlock>
</DataTemplate>
<DataTemplate x:Key="year">
<TextBlock Text="{Binding Path=FoundingYear}"></TextBlock>
</DataTemplate>
<DataTemplate x:Key="logo">
<Image Source="{Binding Path=Image}" />
</DataTemplate>
</Window.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<ScrollViewer Grid.Row="0"
AllowDrop="True">
<ListBox Name="lstTeams">
</ListBox>
</ScrollViewer>
<Button Grid.Row="1"
Margin="6">Change View</Button>
</Grid>
</Window>
答案 0 :(得分:2)
我想你想要更改列表框模板,试试这个:
在XAML中
<Button Grid.Row="1" Margin="6" Click="changeTemplate">Change View</Button>
在C#中
lstTeams.ItemTemplate = (DataTemplate)this.Resources["teamname"];
你必须处理你想要循环的不同模板,但这几乎就是如何进行代码隐藏。