将ListView绑定到没有命名属性的ArrayList项的ObservableCollection

时间:2012-06-01 20:42:11

标签: c# 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的Observable Collection:

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

并公开提及它们:

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

最后,当我添加到集合中时,我使用:

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

将ArrayList添加到集合中。 (是的,ArrayLists的集合,我知道......)

但是,每列中显示的内容是(收藏),(收藏,(收藏)。

我明白为什么。但是,我并不完全确定最好的方法是什么。通常在每个GridViewColumn中,您都会提供如下绑定:

  

DisplayMemberBinding =“{Binding TestResult}”

但是ArrayList没有命名组件,只有索引(0-2)。

有没有办法将每列绑定到各个索引?或者我已经错过了一些简单的东西?

1 个答案:

答案 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]}"/>