Uzun bir zaman önce küçük bir WPF programlama yaptım, ama UWP ile xaml'e dönüyorum, fakat bunun neden işe yaradığını ve nedenini anlayamadığını düşünüyorum. Temel olarak bir ListControl kullanmak yerine bir ItemsControl kullanmak istiyorum (çünkü sadece bazı verileri listelemek istiyorum, seçim yapmak istemiyorum). İşte ItemsControl ve ÖğeTemplateSelector Windows 10 UWP uygulaması
<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>
benim ItemsControl geçerli:: İşte
<ItemsControl ItemsSource="{Binding Messages}" ItemTemplateSelector="{StaticResource MessageDataTemplateSelector}" />
benim DataTemplateSelector edilir: İşte benim kaynaklardır
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;
}
}
yerine benim şablonlarından herhangi görüntülendiği bu sadece benim ViewModel tipi adını görüntüler (yani temelde ToString).
Ancak bunu ItemsControl'den ListView'e değiştirirseniz, iyi çalışır.
Herhangi bir öneriniz var mı?
Son zamanlarda yaptığım uygulamalardan birinde aynı sorunla karşılaştım! Bu çözülebilir ise merak ediyorum ... – Depechie