読者です 読者をやめる 読者になる 読者になる

みかづきメモ

学習したことのメモとか、日記とか、備忘録。

Xamarin.Forms の ListView で、 iOS で表示される不要な枠線を消す

C# Xamarin

なんともタイトルだけだと、何が言いたいのかわかりづらいですが、
ListView を使った際、アイテム数が少ない場合は、下の方に空のセルが詰められます。
↓こんな感じです(一番下が空のセル)
f:id:MikazukiFuyuno:20151217001451p:plain

個人的に気持ち悪いので、これを消し去ります。


検索したら出てきました。

How to hide the empty rows of a list view in xamrin.forms in ios - Xamarin Forums

しかし、できません。
なので、とりあえず同様の動作をするコードを作りました。

[assembly: ExportRenderer(typeof(ListView), typeof(iOSListViewRenderer))]

namespace BlankCell.iOS.Renderers
{
    public class iOSListViewRenderer : ListViewRenderer
    {
        public iOSListViewRenderer()
        {
            this.ElementChanged += (sender, e) =>
            {
                var element = this.Element as ListView;
                if (element == null)
                {
                    return;
                }
                element.Footer = new ContentView();
            };
        }
    }
}

これでできます。