ListView
の項目の間にセパレータを挿入したいと思います(下の画像のように)。アイテム間のリストビューセパレータ
2つの問題があります。
- 私は
ItemTemplate
内の項目の下にある(ボーダーとして)それを追加した場合、最後の項目は、セパレータを持つことになりますし、それが必要でない。 ItemTemplate
の外側にセパレータを追加する方法が見つかった場合は、どのようにラベルに揃えますか?
ListView
の項目の間にセパレータを挿入したいと思います(下の画像のように)。アイテム間のリストビューセパレータ
2つの問題があります。
ItemTemplate
内の項目の下にある(ボーダーとして)それを追加した場合、最後の項目は、セパレータを持つことになりますし、それが必要でない。ItemTemplate
の外側にセパレータを追加する方法が見つかった場合は、どのようにラベルに揃えますか?これにはDataTemplateSelector
を使用する必要があります。最初に作成する必要がありますDataTemplate
の
例:Stringのリストを表示したい単純なItemsControlでは、My Two DataTemplate
は以下のようになります。
<Page.Resources>
<DataTemplate x:Name="AllItems">
<Border BorderBrush="{StaticResource SystemControlBackgroundBaseLowBrush}" BorderThickness="0,0,0,2">
<TextBlock Text="{Binding ''}" Padding="10" Margin="10,0" />
</Border>
</DataTemplate>
<DataTemplate x:Name="LastItems">
<TextBlock Text="{Binding ''}" Padding="10" Margin="10,0" />
</DataTemplate>
</Page.Resources>
は今、私はDataTemplateSelector
を作成し、私はDataTemplate
を適用する必要がある項目は、最終1であるかどうか確認してください。
public class ItemsDataTemplateSelector: DataTemplateSelector
{
public DataTemplate AllItems { get; set; }
public DataTemplate LastItems { get; set; }
protected override DataTemplate SelectTemplateCore(object item, DependencyObject container)
{
DataTemplate _returnTemplate = new DataTemplate();
var itemsControl = ItemsControl.ItemsControlFromItemContainer(container);
if (itemsControl.IndexFromContainer(container) == (itemsControl.ItemsSource as List<String>).Count-1)
{
_returnTemplate = LastItems;
}
else
{
_returnTemplate = AllItems;
}
return _returnTemplate;
}
}
今私のItemsControl
実装はここ
<ItemsControl x:Name="listView">
<ItemsControl.ItemTemplateSelector>
<local:ItemsDataTemplateSelector AllItems="{StaticResource AllItems}" LastItems="{StaticResource LastItems}" />
</ItemsControl.ItemTemplateSelector>
</ItemsControl>
だろうが、私は以下
List<String> items = new List<string>();
for (int i = 1; i <= 5; i++)
{
items.Add("Item " + i.ToString());
}
listView.ItemsSource = items;
をItemsControlにするためのItemsSourceを設定する方法で、あなたの出力です。あなたは最後の項目は質問がUWPについてですBorder
listView.IにおけるXMLでの使用分周器の属性がactivity_main.xmlで
、それはあなたのrequirment.For例を満たし願っています:color.xmlで
<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentStart="true"
android:layout_below="@+id/buttn"
android:divider="@color/Divider"
android:dividerHeight="2dp"
android:id="@+id/listview"/>
:
<resources>
<color name="colorPrimary">#3F51B5</color>
<color name="colorPrimaryDark">#303F9F</color>
<color name="colorAccent">#FF4081</color>
<color name="Divider">#085411</color></resources>
を持っていません見ることができます。 Androidでない – AVK
しかし、これはほとんど再利用できません。 – SuperJMN