wpf - 数据模板,用按钮更改模板

时间:2013-04-18 08:25:46

标签: c# wpf xaml

我的任务是创建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>

1 个答案:

答案 0 :(得分:2)

我想你想要更改列表框模板,试试这个:

在XAML中

<Button Grid.Row="1" Margin="6" Click="changeTemplate">Change View</Button>

在C#中

lstTeams.ItemTemplate = (DataTemplate)this.Resources["teamname"];

你必须处理你想要循环的不同模板,但这几乎就是如何进行代码隐藏。