The BorderLocation property of ListViewItemStyle seems to either not be working correctly, or is severely limited in its capabilities. Although the Location enum is not marked with [Flags], the values 0, 1, 2, 4, 8, 15 seem to imply bit flags that should be able to get OR'd together. However, when trying to use Location.Top | Location.Bottom, the result is NO border at all.
Example:
public class BorderLocationExample : ContentPage
{
private readonly ListViewItemStyle BorderAll = new ListViewItemStyle
{
BorderColor = Color.Blue,
BorderLocation = Location.All,
BorderWidth = 8
};
private readonly ListViewItemStyle BorderTop = new ListViewItemStyle
{
BorderColor = Color.Blue,
BorderLocation = Location.Top,
BorderWidth = 8
};
private readonly ListViewItemStyle BorderTopAndBottom = new ListViewItemStyle
{
BorderColor = Color.Blue,
BorderLocation = Location.Top | Location.Bottom, // <-- DOESN'T WORK !!! These items have NO border at all.
BorderWidth = 8
};
public BorderLocationExample()
{
BackgroundColor = Color.Gray;
var items = new ObservableCollection<string>
{
"Item 1",
"Item 2",
"Item 3",
};
Content = new StackLayout
{
Orientation = StackOrientation.Vertical,
Children =
{
new RadListView
{
ItemsSource = items,
ItemStyle = BorderAll
},
new RadListView
{
ItemsSource = items,
ItemStyle = BorderTop
},
new RadListView
{
ItemsSource = items,
ItemStyle = BorderTopAndBottom
},
}
};
}
}