Я пытаюсь очень часто использовать Xamarin.Forms ListView, где у меня есть несколько типов элементов.
Я использую DataTemplateSelector и определяю разные (на данный момент два) представления в моем файле XAML. Для этого требуется ссылка на код C# из кода XAML через определение пространства имен. И вот где я застрял.
Ошибка, которую я получаю,
XFC0000 Cannot resolve type "local:NodeTemplateSelector".
Вот мой XAML, сжатый:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
...
xmlns:local="clr-namespace:varlist">
<ContentPage.Resources>
<ResourceDictionary>
<DataTemplate x:Key="NoteItem">
...
</DataTemplate>
<local:NodeTemplateSelector x:Key="NodeTemplateKey">
NoteTemplate = "{StaticResource NoteItem}"
ImageTemplate = "{StaticResource ImageItem}"
</local:NodeTemplateSelector>
</ResourceDictionary>
</ContentPage.Resources>
</ContentPage>
А вот и C#, тоже в сжатом виде:
namespace varlist
{
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class ListViewPage : ContentPage
{
...
public class NodeTemplateSelector : DataTemplateSelector
{
public DataTemplate NoteTemplate { get; set; }
public DataTemplate ImageTemplate { get; set; }
protected override DataTemplate OnSelectTemplate (object item, BindableObject container)
{
ListView list = (ListView)container;
if (item is NoteData)
return NoteTemplate;
else // item is ImageData
return ImageTemplate;
}
}
}
}
Что мне нужно изменить, чтобы XAML распознал NodeTemplateSelector?
NodeTemplateSelector
внутри классаListViewPage
? - person Jason   schedule 10.11.2020