2017-06-19 65 views
0

我目前正在開發一個使用Visual Basic語言的WPF應用程序,我正在閱讀一個標準文本文件(ObjectNames.txt,存儲在與應用程序相同的目錄)並將它們輸入到組合框中。我一直在尋找一個解決方案,並且只找到了調用「AddRange」方法的答案,這是一種在Windows Forms應用程序中使用但不是WPF應用程序的方法。從文本文件讀取項目到組合框,VB,WPF

如果任何人都可以告訴我如何完成此任務,那麼對於Visual Basic和WPF應用程序而言,我還是一個新手。我還想在文件寫入之前清除組合框,因爲它的內容取決於另一個控件的輸出,我相信我可以在讀取操作之前使用「comboBox.Items.Clear」來完成此操作。

任何答案非常感謝,謝謝!

回答

0

我建議你將你的任務分成兩部分,使每個部分簡單。

1)從文件中加載項目並創建它們的集合,例如字符串列表,或者任何類的實例列表,這些類別的實例將覆蓋ToString方法以按照您希望的方式生成對象在您的ComboBox中顯示。 因此,無論您使用的是Forms還是WPF,這都是一樣的。

2)使用標準MVVM綁定將WPF組合框綁定到此列表。 下面是一個簡化的過度,人爲的例子:

在視圖模型類..

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的設置爲你的視圖模型類實例,並綁定你的ComboBox的ItemsSource這樣:

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

我希望這有助於。 WPF確實需要一點精神上的啓動,但它很快就會讓你覺得非常簡單和多才多藝。最好的羅恩。

詹姆斯·赫斯特

+0

謝謝您的答覆,我把使用「ReadAllLines」功能來閱讀我的列表到字符串數組,參與類似的方法,然後我用一個for each循環添加項目到組合框。正如你所建議的,我開始研究數據綁定,它似乎非常有用。再次感謝! – Ronan

+0

你很受歡迎。是的,請熟悉數據綁定:使用WPF將簡化您的生活,一旦您習慣了它,您將永遠不想在沒有它的情況下對UX進行編程。 –