title: SwiftUI dynamic List with @Binding controls
body: <p>How do I build a dynamic list with @Binding-driven controls without having to reference the array manually? It seems obvious but using List or ForEach to iterate through the array give all sorts of strange errors.</p>
  
  <pre><code>struct OrderItem : Identifiable {
      let id = UUID()
      var label : String
      var value : Bool = false
  }
  
  struct ContentView: View {
      @State var items = [OrderItem(label: "Shirts"),
                          OrderItem(label: "Pants"),
                          OrderItem(label: "Socks")]
      var body: some View {
          NavigationView {
              Form {
                  Section {
                      List {
                          Toggle(items[0].label, isOn: $items[0].value)
                          Toggle(items[1].label, isOn: $items[1].value)
                          Toggle(items[2].label, isOn: $items[2].value)
                      }
                  }
              }.navigationBarTitle("Clothing")
          }
      }
  }
  </code></pre>
  
  <p>This doesn't work:</p>
  
  <pre><code>            ...
                  Section {
                      List($items, id: \.id) { item in
                          Toggle(item.label, isOn: item.value)
                      }
                  }
              ...
  </code></pre>
  
  <blockquote>
    <p>Type '_' has no member 'id'</p>
  </blockquote>
  
  <p>Nor does:</p>
  
  <pre><code>            ...
                  Section {
                      List($items) { item in
                          Toggle(item.label, isOn: item.value)
                      }
                  }
              ...
  </code></pre>
  
  <blockquote>
    <p>Generic parameter 'SelectionValue' could not be inferred</p>
  </blockquote>