我想要動態改變我的內容從一個AppBar蒙山驗證碼:ContentControl中不改變內容 - 函數從來沒有所謂
<Page.Resources>
<local:AppBarSelector x:Key="myAppBarSelector"/>
</Page.Resources>
<Page.BottomAppBar>
<AppBar>
<ContentControl Content="{Binding SelectedItem, ElementName=listBox}" ContentTemplateSelector="{StaticResource myAppBarSelector}">
<ContentControl.Resources>
<DataTemplate x:Key="1">
<TextBlock Text="Hallo Welt 1" Foreground="White" />
</DataTemplate>
<DataTemplate x:Key="2">
<TextBlock Text="Hallo Welt 2" Foreground="White" />
</DataTemplate>
</ContentControl.Resources>
</ContentControl>
</AppBar>
</Page.BottomAppBar>
這是我的代碼背後:
public class AppBarSelector : DataTemplateSelector
{
protected override DataTemplate SelectTemplateCore(object item, DependencyObject container)
{
Debug.WriteLine((string)item);
if (item == null) return base.SelectTemplateCore(item, container);
var contentControl = (ContentControl)container;
var templateKey = (string)item;
return (DataTemplate)contentControl.Resources[templateKey];
}
}
但這方法是神經調用。即使Debug.WriteLine
函數。我的錯誤在哪裏?
你確定你的物品實際上是一個字符串嗎?它可能是在這一點上除外。您的項目是您的綁定ItemsSource項目。 – NSGaga 2013-04-27 23:30:59
是我填充ListView:'listBox.ItemsSource = new List {「1」,「2」,「3」,「4」};'我有第二個使用其他'Page.Resource'的ContentControl,但是也與列表視圖項的字符串 - 這很好,但這裏的功能不叫... –
Cilenco
2013-04-28 08:34:49
抱歉懷疑你:)你有任何錯誤在調試視圖?並再次微不足道,但你確定它不會'擊中'SelectTemplateCore(把一個斷點,而不僅僅是傾銷)。 – NSGaga 2013-04-28 19:05:20