У меня была та же проблема, что и здесь. Я считаю, что проблема сводится к файлу 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.
Я пишу простую демонстрацию, чтобы удовлетворить ваши требования. Я использую 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>
Давайте посмотрим на результат:
как я могу отобразить person3, если его список элементов пуст?
blockquote>Проверить код
dataSource
, а Person3 не имеет [ 116].