title: Binding value from an ObservableObject
body: <h1>Aim:</h1>
  
  <p>I have a model which is an <code>ObservableObject</code>. It has a <code>Bool</code> property, I would like to use this <code>Bool</code> property to initialise a <code>@Binding</code> variable.</p>
  
  <h1>Questions:</h1>
  
  <ol>
  <li>How to convert an <code>@ObservableObject</code> to a <code>@Binding</code> ?</li>
  <li>Is creating a <code>@State</code> the only way to initialise a <code>@Binding</code> ?</li>
  </ol>
  
  <h1>Note:</h1>
  
  <ul>
  <li>I do understand I can make use of <code>@ObservedObject</code> / <code>@EnvironmentObject</code>, and I see it's usefulness, but I am not sure a simple button needs to have access to the entire model. </li>
  <li>Or is my understanding incorrect ?</li>
  </ul>
  
  <h1>Code:</h1>
  
  <pre><code>import SwiftUI
  import Combine
  import SwiftUI
  import PlaygroundSupport
  
  class Car : ObservableObject {
  
      @Published var isReadyForSale = true
  }
  
  struct SaleButton : View {
  
      @Binding var isOn : Bool
  
      var body: some View {
  
          Button(action: {
  
              self.isOn.toggle()
          }) {
              Text(isOn ? "On" : "Off")
          }
      }
  }
  
  let car = Car()
  
  //How to convert an ObservableObject to a Binding
  //Is creating an ObservedObject or EnvironmentObject the only way to handle a Observable Object ?
  
  let button = SaleButton(isOn: car.isReadyForSale) //Throws a compilation error and rightly so, but how to pass it as a Binding variable ?
  
  PlaygroundPage.current.setLiveView(button)
  </code></pre>