It looks like passing a binding (instead of value) to a detail view is not possible with NavigationSplitView.
For example, how to adopt NavigationSplitView in sample app Date Planner — Sample Apps Tutorials | Apple Developer Documentation does not seem straight forward.
The only way seems to be to use ObservableObjects and use separate update methods on data.
...
ForEach(eventData.sortedEvents(period: period)) { $event in
NavigationLink {
EventEditor(event: $event)
} label: {
EventRow(event: event)
}