Xamarin.FormsでMacアプリを開発しているときに、ListViewを使うと例外が発生して困ったので、その解決策を記載しておきます。
問題
以下のように普通にListViewを使って書いて、画面をスクロールしていると、ObjCRuntime.RuntimeExceptionが発生します。
<ListView ItemsSource="{Binding Items}" >
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
...
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
解決策
CachingStrategyをRecycleElementにすれば、例外が発生しなくなります。
<ListView ItemsSource="{Binding Items}" CachingStrategy="RecycleElement">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
...
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
