很久以前,我做了一個WPF編程,但我只是用UWP返回到xaml,但我認爲這應該起作用,並且找不到原因。基本上我想使用ItemsControl(因爲我只想列出一些數據,我不想選擇)而不是ListView控件。這裏是我的資源:Windows 10 UWP應用程序中的ItemsControl和ItemTemplateSelector
<Page.Resources>
<DataTemplate x:Key="SentMessageDataTemplate">
<TextBlock Text="Sent" />
</DataTemplate>
<DataTemplate x:Key="ReceivedMessageDataTemplate">
<TextBlock Text="Recieved" />
</DataTemplate>
<services:MessageDataTemplateSelector x:Key="MessageDataTemplateSelector" ReceivedTemplate="{StaticResource ReceivedMessageDataTemplate}" SentTemplate="{StaticResource SentMessageDataTemplate}"></services:MessageDataTemplateSelector>
</Page.Resources>
這裏是我的ItemsControl:
<ItemsControl ItemsSource="{Binding Messages}" ItemTemplateSelector="{StaticResource MessageDataTemplateSelector}" />
這裏是我的DataTemplateSelector:
public class MessageDataTemplateSelector : DataTemplateSelector
{
public DataTemplate SentTemplate
{
get;
set;
}
public DataTemplate ReceivedTemplate
{
get;
set;
}
protected override DataTemplate SelectTemplateCore(object item)
{
var message = item as MessageViewModel;
if (message == null)
{
return this.SentTemplate;
}
return message.Sent ? this.SentTemplate : this.ReceivedTemplate;
}
}
而不是顯示無論是我的模板,它只是顯示我的視圖模型類型名稱(所以基本上ToString)。
但是,如果我從ItemsControl切換到ListView,它工作正常。
有什麼建議嗎?
最近有一個應用程序出現同樣的問題!想知道如果這是可以解決的... – Depechie