■
いや、夜も遅いんで、ちょっとだけかなぁ。
Blogに書いたと思ってた記事がUpしてないことに気がついたので、なま暖かくて柔らかい、ちょっと触るとプルプル動くの勝手気ままなコンバート二回目だ。
前回、DataViewとDataRowViewをつくらないといけないんじゃ、と書いたが、実はそれをするとシヌル。というのもDataRowViewは派生できないから、そのまま利用するしかないクラスだ。
しかし、第一の目的のcontainer.item.hogePropという形にもっていくのは、DataRowViewを使ってはいけない。必ずそこにキャストが入ってしまうからだ。
なので、DataViewとDataRowView相当を作るのが正しい...と後で気がついたが、菊池さん本人もそういう趣旨のことをコメントで追記してた。
ええ、はまりましたよ、一度。
んで、DataViewとDataRowView相当を実装するとなったときに、ExecuteSelectで返すのがIEnumeratorってことに注意。つまり、IEnumeratorと、IEnumerableを実装する必要がある。
当然ながら、こう。
Public class HogeDataView implements IEnumerable protected overrides Function GetEnumerator() as IEnumerator (ちょっとこの部分は、嘘かも) end Function protected class HogeDataRowVIew implements IEnumerator end class end class
続きは、次回。