Как связать Listview с Observablecollection в статическом классе другого пространства имен - PullRequest
0 голосов
/ 27 октября 2018

Я много читал о пространстве имен, но все еще сталкиваюсь с проблемой / недоразумением.

Я хотел бы связать Listview с коллекцией Observable, которая находится в статическом классе в другом пространстве имен.Это работает, но я не могу добиться успеха без кода.Я уверен, что есть лучший способ сделать это полностью в файле XAML.

Итак, это мой файл XAML (... часть - я удаляю многое, чтобы очистить ...):

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:local="clr-namespace:ToolBox"
             x:Class="ToolBox.MainPage">

    <StackLayout>

        <ListView x:Name="listToolBox">
            <ListView.ItemTemplate>
                <DataTemplate>
                    <TextCell   Text="{Binding  Name}"
                                Detail="{Binding CreateDate}"/>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>

    </StackLayout>

Я установил контекст связывания "listToolBox" в коде:

...
using ToolBox.Model;

namespace ToolBox
{
    public partial class MainPage : ContentPage
    {
        public MainPage()
        {
            InitializeComponent();
            listToolBox.ItemsSource = ToolBox.Model.EBis.ToolBoxList;
        }
        ...

Это относится к члену статического класса:

namespace ToolBox.Model
{

    public static class EBis
    {
        public static ObservableCollection<cDocuments> ToolBoxList = new ObservableCollection<cDocuments>
        {
            new cDocuments{ Id = -1, Name = "Pas (encore) de connection aux serveurs ..."}
        };
    ...

МОЙ ВОПРОС: Какие инструкции по связыванию я должен написать в элементах XAML, чтобы удалить эту строку кода позади

listToolBox.ItemsSource = ToolBox.Model.EBis.ToolBoxList;

Чтобы завершить, структура моего приложения "Toolbox" здесь: см. Обозреватель решений

Большое спасибо за ваши советы!

1 Ответ

0 голосов
/ 27 октября 2018

Используйте расширение x: Статическая разметка:

<ListView ItemsSource=“{x:Static local:Model.EBis.ToolBoxList}”>
...