将列表视图绑定到不带命名属性的 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)。
有没有办法将每列绑定到各个索引?还是我已经错过了一些简单的东西?
在绑定路径中指定索引:
<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]}"/>