2

いくつかの設定グループを互いに独立して制御できるようにしたいと思います。もともとはMy.Settingsを使用していましたが、一部の設定を手動でロールバックして他の設定を保存するのは大変な作業でした。

私の解決策は複数の設定ファイルを使用することだと思っていました。これが機能しているように見える瞬間がありましたが、成功したのは定期的かつ一時的なものです。

現在、プロジェクトのルートに2つの設定ファイルがあります。コードでは、設定にアクセスできますが、多くの場合、個々の設定をコントロールにバインドしたいと思います。これは簡単なはずです。単一の組み込み設定ファイルを使用したときに機能していたことを思い出します。

ただし、2つの新しい設定ファイルを使用すると機能しません。[書式設定と高度なバインド]ダイアログで、[新しいプロジェクトデータソースの追加]を選択し、プロジェクトを参照してからルート名前空間を参照すると、フォーム/クラス/設定ファイルが表示されます。2つの設定ファイルを選択して[OK]をクリックすると、コントロールをバインドする個々の設定を選択できずにダイアログが閉じます。

[プロジェクト]>[すべてのファイルを表示]を有効にすると、バインディングが作成されたことがわかります。[マイプロジェクト]>[データソース]の下に2つの.datasourceファイルがあります。

これらの設定ファイルにバインドできない理由はありますか?そうでない場合、データバインディングダイアログにアクセスできないのはなぜですか?

プランBは、コントロールと設定ファイルの間の仲介役として機能するオブジェクトを作成することですが、可能であれば、これは避けたいと思います。

4

1 に答える 1

2

設定ファイルまたは「その他」というプロパティで追加したカスタム設定ファイルへのデータバインディングに問題はありませんでした。

Public Sub New()
  InitializeComponent()

  TextBox1.DataBindings.Add("Text", My.Settings, "Test")
  TextBox2.DataBindings.Add("Text", custom.Default, "other")
End Sub

カスタム設定ファイルで見つけた唯一の「ヒッチ」は、デフォルトのように設定ファイルに自動的に書き込まれないことMy.Settingsでした。これをフォームに追加しました:

Protected Overrides Sub OnFormClosing(ByVal e As FormClosingEventArgs)
  custom.Default.Save()

  MyBase.OnFormClosing(e)
End Sub

その後、設定は持続しました。

于 2012-05-09T13:45:42.527 に答える