2012-06-01 33 views
0

首先:綁定ListView控件到ArrayList的項目的一個ObservableCollection沒有命名的屬性

 <ListView Height="259" HorizontalAlignment="Left" Margin="7,6,0,0" Name="dataListView" VerticalAlignment="Top" Width="899"> 
      <ListView.View> 
       <GridView> 
        <GridViewColumn Width="240" Header="Test" /> 
        <GridViewColumn Width="50" Header="Result" /> 
        <GridViewColumn Header="Column 3" /> 
       </GridView> 
      </ListView.View> 
     </ListView> 

是我的XAML文件中的定義。

然後在測試開始時,我跑:

dataListView.ItemsSource = tr.TestResultCollection; 

在TestRunner.cs,我創建的ArrayList的觀察集合如此:

ObservableCollection<ArrayList> _testResultCollection = new ObservableCollection<ArrayList>(); 

,並公開稱他們爲這樣的:

 public ObservableCollection<ArrayList> TestResultCollection 
     { get { return _testResultCollection; } } 

最後當我添加到集合中時,我使用:

_testResultCollection.Add(SummaryVerificationTestCase1(dbs, dbd)); 

它將一個ArrayList添加到集合中。 (是的,的ArrayList集合,我知道...)

然而,中顯示的內容每列(集合),(收集,(集合)。

我知道爲什麼了。不過,我... M並不完全肯定什麼最巧妙的方法解決辦法是通常在每個GridViewColumn你給像結合:

DisplayMemberBinding =「{結合的TestResult}」

但ArrayList中沒有名爲組件,只是指數(0-2),

有沒有辦法將每列綁定到單個索引?還是我錯過了一些簡單的東西?

+0

'ArrayList'是在.NET Framework中最無用的名單。請使用數組或列表'。你的理智會感謝你。 –

+0

這主要是因爲我使用他人的遺留代碼結構。我正在考慮重組;)但是,謝謝。 –

+0

並且在評論之後,我花了一個小時完成了所有工作。好多了:) –

回答

1

在綁定路徑指定索引:

 <GridViewColumn Width="240" Header="Test" DisplayMemberBinding="{Binding Path=[0]}"/> 
     <GridViewColumn Width="50" Header="Result" DisplayMemberBinding="{Binding Path=[1]}"/> 
     <GridViewColumn Header="Column 3" DisplayMemberBinding="{Binding Path=[2]}"/> 
+0

gah,這很簡單。完善! –

相關問題