Ahm*_*d.C 1 c# xaml listbox datatemplate windows-phone-8
嘿伙计我只是在徘徊,如果有人可以告诉我如何以编程方式更改ListBoxDataTemplate.基本上我有这个DataTemplate:
<DataTemplate x:Key="DataTemplate1">
<Grid toolkit:TiltEffect.IsTiltEnabled="True" d:DesignWidth="446" Width="446" d:DesignHeight="108" Height="108">
<TextBlock TextWrapping="NoWrap" Text="{Binding AccountTitle}" VerticalAlignment="Top" Width="456" HorizontalAlignment="Left" Height="40" FontFamily="Segoe WP" FontSize="28" />
<TextBlock TextWrapping="NoWrap" Text="{Binding AccountUsername}" VerticalAlignment="Top" Width="456" Margin="0,33,0,0" HorizontalAlignment="Left" Height="35" FontFamily="Segoe WP" FontSize="24" />
<TextBlock TextWrapping="NoWrap" Text="{Binding AccountWebsite}" VerticalAlignment="Top" Width="456" Margin="0,61,0,0" HorizontalAlignment="Left" Height="35" FontFamily="Segoe WP" FontSize="24" />
<TextBlock TextWrapping="NoWrap" Text="{Binding FolderID}" VerticalAlignment="Top" Width="456" Margin="0,96,0,-13" HorizontalAlignment="Left" Height="35" FontFamily="Segoe WP" FontSize="24" Opacity="0" Visibility="Collapsed" />
<TextBlock TextWrapping="NoWrap" Text="{Binding AccountDate}" VerticalAlignment="Top" Margin="0,38,0,0" FontFamily="Segoe WP" FontSize="20" TextAlignment="Right" HorizontalAlignment="Right" />
</Grid>
</DataTemplate>
Run Code Online (Sandbox Code Playgroud)
现在,当用户在"设置"页面上设置某个设置时,ListBox DataTemplate必须更改为:
<DataTemplate x:Key="DataTemplate1">
<Grid toolkit:TiltEffect.IsTiltEnabled="True" d:DesignWidth="446" Width="446" d:DesignHeight="108" Height="108">
<TextBlock TextWrapping="NoWrap" Text="{Binding AccountTitle}" VerticalAlignment="Top" Width="456" HorizontalAlignment="Left" Height="40" FontFamily="Segoe WP" FontSize="28" />
<TextBlock TextWrapping="NoWrap" Text="{Binding AccountDate}" VerticalAlignment="Top" Margin="0,38,0,0" FontFamily="Segoe WP" FontSize="20" TextAlignment="Right" HorizontalAlignment="Right" />
</Grid>
</DataTemplate>
Run Code Online (Sandbox Code Playgroud)
是否有可能这样做?如果是这样,请有人帮助我.谢谢!
许多方法之一,DataTemplate在页面资源中定义两个.然后,您可以ItemTemplate在运行时将ListBox设置为这两个中的任何一个:
MyListBox.ItemTemplate = (DataTemplate)FindResource("DataTemplate2");
Run Code Online (Sandbox Code Playgroud)
更新:
因为,FindResource()Windows Phone页面中没有功能,并且OP确认这个功能对他有用,所以使用以下代码而不是上面的代码:
MyListBox.ItemTemplate = (DataTemplate)this.Resources["DataTemplate2"];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1184 次 |
| 最近记录: |