public GistOptionsPage([NotNull] Lifetime lifetime, DataContexts dataContexts, GitHubService gitHubService, OptionsSettingsSmartContext settings)
      : base(lifetime, Pid)
    {
      if (lifetime == null)
        throw new ArgumentNullException("lifetime");

      myGitHubService = gitHubService;
      myEmptyDataContext = dataContexts.Empty;

      TextBox usernameBox;
      System.Windows.Forms.TextBox passwordBox;
      Control = InitView(out usernameBox, out passwordBox);

      settings.SetBinding(lifetime, (GitHubSettings s) => s.Username, usernameBox, TextBox.TextProperty);
      settings.SetBinding(lifetime, (GitHubSettings s) => s.Password, WinFormsProperty.Create(lifetime, passwordBox, box => box.Text, true));
    }