2017-06-19 3 views
0

現在、Visual Basic言語を使用してWPFアプリケーションを開発していますが、標準のテキストファイル(ObjectNames.txt、アプリケーションと同じディレクトリ)を作成し、コンボボックスに入力します。私は解決策を探しており、WPFアプリケーションではなくWindows Formsアプリケーションで使用されるメソッドである "AddRange"メソッドを呼び出すだけの回答を見つけました。テキストファイルからコンボボックス、VB、WPFに読み込む

私がこれをどのように達成できるか教えてもらえれば、私はまだVisual BasicとWPFアプリケーションには全く新しいものです。私はまた、その内容が別のコントロールの出力に依存するので、ファイルが書き込まれる前にコンボボックスをクリアしたいと思っています。読み込み操作の直前に "comboBox.Items.Clear"を使ってこれを行うことができます。

ご質問ありがとうございます。ありがとうございます。

答えて

0

タスクを2つに分割し、それぞれを単純にすることをお勧めします。

1)ファイルからアイテムをロードし、文字列のリスト、ToStringメソッドをオーバーライドする任意のクラスのインスタンスのリストなど、それらのコレクションを作成して、目的の方法でオブジェクトを生成しますComboBox内に表示します。 これは、FormsまたはWPFのどちらを使用しているかにかかわらず同じです。

2)標準MVVMバインディングを使用して、このリストにWPF ComboBoxをバインドします。ここ はオーバー簡素化、不自然な例です:

ビューモデルクラスで..

public List<string> MyItems 
{ 
    get 
    { 
     if (_myItems == null) 
     { 
      // Create the _myItems list from your data-file here. 
     } 
     return _myItems; 
    } 
} 

private List<string> _myItems; 

今すぐあなたのXAML(またはコードビハインド)で、にあなたのXAMLオブジェクトのDataContextのセットあなたのビューモデルクラスのインスタンス、およびthuslyあなたのコンボボックスののItemsSourceをバインド:

<ComboBox Name="cbMyItems" ItemsSource="{Binding MyItems}" .. 

を、私はこのことができます願っています。 WPFはちょっとしたことで精神的には始まりますが、すぐに非常にシンプルで多用途に感じられます。ロナンのベスト。

ジェームズ・ハースト

+0

はご回答いただきありがとうございます、私はその後、私はに項目を追加するために各ループのために使用され、文字列配列の中に私のリストを読み取るために、「ReadAllLines」機能を使って関連する同様の方法を取りましたコンボボックス。私はあなたが示唆したようにデータバインディングを調べ始めています、それは非常に有用であるようです。再度、感謝します! – Ronan

+0

あなたは大歓迎です。はい、データバインディングに慣れてください。WPFを使用すると、人生が単純化され、快適になると、それなしでUXをプログラミングすることは決して望ましくありません。 –

関連する問題