将列表视图绑定到不带命名属性的 ArrayList 项的可观察集合

本文关键字:ArrayList 属性 集合 观察 视图 列表 绑定 | 更新日期: 2023-09-27 18:36:07

首先:

        <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 中,我创建了 ArrayLists的可观察集合:

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

并公开这样称呼它们:

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

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

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

将数组列表添加到集合中。 (是的,ArrayLists的集合,我知道...

但是,每列中显示的内容是(集合)、(集合、(集合)。

我明白为什么了。 但是,我不完全确定最整洁的方式是什么。 通常,在每个 GridViewColumn 中,您都会给出如下所示的绑定:

DisplayMemberBinding="{Binding TestResult}"

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

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

将列表视图绑定到不带命名属性的 ArrayList 项的可观察集合

在绑定路径中指定索引:

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