Редактируемый сгруппированный список в Xamarin Forms

У меня была та же проблема, что и здесь. Я считаю, что проблема сводится к файлу junit4 jar.

Если в редакторе eclipse pom вы просматриваете иерархию junit4, вы увидите, что она имеет зависимость от hamcrest-core (т. е. hamcrest-core будет по умолчанию затягиваться при компиляции). В моем модульном тестовом коде я использую сборник Hamcrest Matchers (org.hamcrest.collection). Они не включены в основную банку, и я установил зависимость от hamcrest - все в pom. Выполнение этого дублирует включение hamcrest-core и, как представляется, оставляет вас открытым для несоответствия версии с зависимостью junit hamcrest-core и, следовательно, исключение безопасности. Я удалил зависимость hamcrest-all и заменил ее на hamcrest-библиотеку, и исключение исчезло.

Если вы используете только основной hamcrest, тогда вы не должны настраивать свою собственную зависимость и полагаться на версию junit, которая вытягивает В качестве альтернативы, как предложено в другом комментарии, используйте junit-dep, чтобы удалить зависимость junit, а затем включить hamcrest-all.

0
задан Bartek Chyży 17 March 2019 в 21:26
поделиться

1 ответ

Я пишу простую демонстрацию, чтобы удовлетворить ваши требования. Я использую Grouped ListViews:

OrderModel :

public class OrderModel
{

    public string orderName { get; set; }

    public OrderModel()
    {
    }
}

public class GroupedOrderModel : ObservableCollection<OrderModel>
{
    public string personName { get; set; }
}

Установите источник данных:

public partial class GroupedListXaml : ContentPage
{
    private ObservableCollection<GroupedOrderModel> grouped { get; set; }
    public GroupedListXaml ()
    {
        InitializeComponent ();
        grouped = new ObservableCollection<GroupedOrderModel> ();
        var person1Group = new GroupedOrderModel() { personName = "   john"};
        var person2Group = new GroupedOrderModel() { personName = "   alex"};
        var person3Group = new GroupedOrderModel() { personName = "   jack"};


        person1Group.Add (new OrderModel () { orderName = "   OrderOne"});
        person1Group.Add (new OrderModel() { orderName = "   OrderTwo" });
        person1Group.Add (new OrderModel() { orderName = "   OrderThree"});
        person1Group.Add (new OrderModel() { orderName = "   OrderFour"});

        person2Group.Add (new OrderModel() { orderName = "   OrderOne"});
        person2Group.Add (new OrderModel() { orderName = "   OrderTwo"});
        person2Group.Add (new OrderModel() { orderName = "   OrderThree"});

        grouped.Add (person1Group);
        grouped.Add (person2Group);

        //Person3 without OrderModel
        grouped.Add(person3Group);

        lstView.ItemsSource = grouped;
    }
}

[ 1119] В XAML используйте ListView.GroupHeaderTemplate для настройки заголовка группы:

<ContentPage.Content>
    <ListView x:Name ="lstView" IsGroupingEnabled="true" Footer="">

        <ListView.ItemTemplate>
            <DataTemplate>
                <ViewCell>
                    <StackLayout Orientation="Horizontal">
                        <Label Text="{Binding orderName}" VerticalOptions="Center"  HorizontalOptions="StartAndExpand"/>
                        <Button Text="remove   " HorizontalOptions="EndAndExpand" VerticalOptions="CenterAndExpand"/>
                    </StackLayout>
                </ViewCell>

            </DataTemplate>
        </ListView.ItemTemplate>


        <ListView.GroupHeaderTemplate>
            <DataTemplate>
                <ViewCell>
                    <StackLayout Orientation="Horizontal">
                        <Label Text="{Binding personName}" VerticalOptions="Center"  HorizontalOptions="StartAndExpand"/>
                        <Button Text="remove all   " TextColor="Red" HorizontalOptions="EndAndExpand" VerticalOptions="CenterAndExpand"/>
                    </StackLayout>
                </ViewCell>
            </DataTemplate>
        </ListView.GroupHeaderTemplate>

    </ListView>
</ContentPage.Content>

Давайте посмотрим на результат:

[ 118] Grouped ListViews

как я могу отобразить person3, если его список элементов пуст?

Проверить код dataSource, а Person3 не имеет [ 116].

0
ответ дан Jack Hua - MSFT 17 March 2019 в 21:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: