RxSwiftを始めて間もないため、タイトルが変でしたらご了承ください。

RxSwiftのサンプルにある、Simple Validationを写経して学習していました。
https://qiita.com/kzykbys/items/3bbb4fa24d30917afd05#simple-validation

その際、Observableにbind処理をし、その後disposedでDisposeBagを設定すると、textFieldに値を入れても、バリデーションの処理が行われません。

変わりにdisposedをコメントアウトすると、処理が動くようになりました。

RxSwiftのサンプルではdisposedを使っても動作していたため、理由がわからず困っています。
RxSwiftのバージョンは4.3.1です。

こちらの画面を初期画面として呼び出しています。

どうぞよろしくおねがいします。

import UIKit
import RxSwift
import RxCocoa

fileprivate let minimalUsernameLength = 5
fileprivate let minimalPasswordLength = 5

class ValidationViewController: UIViewController {

    @IBOutlet weak var userNameTextField: UITextField!
    @IBOutlet weak var passwordTextField: UITextField!

    @IBOutlet weak var userNameDescriptionLabel: UILabel!
    @IBOutlet weak var passwordDescriptionLabel: UILabel!

    @IBOutlet weak var loginButton: UIButton!

    override func viewDidLoad() {
        super.viewDidLoad()

        let disposeBag = DisposeBag()

        let usernameValidate = userNameTextField.rx.text.orEmpty
            .map{ text -> Bool in
                print("比較処理実行")
                return text.count >= 5
            }
            .share(replay: 1)

        let passwordValidate = passwordTextField.rx.text.orEmpty
            .map { $0.count >= minimalPasswordLength }
            .share(replay: 1)

        let loginButtonValidate = Observable.combineLatest(usernameValidate, passwordValidate){ $0 && $1 }
            .share(replay: 1)

        usernameValidate
            .bind(to: passwordTextField.rx.isEnabled)
            //.disposed(by: disposeBag) //コメントアウトすることで比較処理が行われ、表示制御ができるようになります。

        usernameValidate
            .bind(to: userNameDescriptionLabel.rx.isHidden)
            //.disposed(by: disposeBag)

        passwordValidate
            .bind(to: passwordDescriptionLabel.rx.isHidden)
            .disposed(by: disposeBag)

        loginButtonValidate
            .bind(to: loginButton.rx.isEnabled)
            //.disposed(by: disposeBag)

        loginButton.rx.tap
            .subscribe(onNext: { [weak self] _ in self?.showAlert() })
            //.disposed(by: disposeBag)


    }

    func showAlert() {
        let alertView = UIAlertView(
            title: "RxExample",
            message: "This is wonderful",
            delegate: nil,
            cancelButtonTitle: "OK"
        )

        alertView.show()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
}