When you say:
let textModel = textModels[index]
...you are creating a temporary "textModel", which only lives for 1 pass of your ForEach.
So you can't use it as a Binding (because it won't exist, when you try and access it later).
(I'm away from Xcode, but) I would omit the line above, and try:
TextField("", text: $textModels[index].name)
Topic:
UI Frameworks
SubTopic:
SwiftUI
Tags: