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>