0

まず:

        <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 の 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) だけです。

各列を個々のインデックスにバインドする方法はありますか? または、単純なものをすでに見逃していますか?

4

1 に答える 1

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]}"/>
于 2012-06-01T20:58:14.910 に答える