Hi Duncan. I'm not expert in Core Data, but I believe a custom Equatable implementation on RowView will allow the inclusion of an ObservedObject<Item> parameter and remove the need for the separate RowViewContent struct in ContentViewF.
static func == (lhs: Self, rhs: Self) -> Bool {
lhs.item == rhs.item
}
I tried it on my local machine and it appears to work.