xsd ファイルを使用して xml ファイルを検証しています。xsd ファイルでは、いくつかの要素のみが必須で、残りはオプションです。ただし、それはシーケンシャルであるため、データテーブルに表示される要素の順序が問題になります。ユーザーが遭遇する可能性のあるいくつかのシナリオを検討した後、解決に少し問題があるケースを思いつきました。
たとえば、xsd ファイルには A、B、C、D、E、F の 6 つの要素があります。A、C、D のみが必要です。ユーザーは A、C、D から始めます。ユーザーが B という名前の列を追加できるようにします。ただし、最後に A、C、D、B が追加されます。したがって、連続しているため、次のようになります。検証しません。
私の質問は、xsd 検証に合格するために A と C の間に B を挿入するにはどうすればよいですか? または、datagridview 内のものを並べ替えて、それをデータテーブルに反映する他の方法はありますか?
テーブルが表示されているデータグリッドビューの列をユーザーが並べ替えられるようにすることで、問題を解決できると思いました。
編集: xsd ファイルを変更できないという仮定の下で。
あれは、
dataGridView1.AllowUserToOrderColumns = true;
ただし、検証では、最後の必要な要素の後に「要素」が必要であることが常に示されていました。これは、datagridview の datacolumn のシフトがデータテーブル自体に反映されなかったことを意味します。
検証に合格するには、列を他のすべてのものに対して相対的なそれぞれの場所に挿入する必要があると思います。または、少なくとも最後に挿入し、ユーザーが検証ボタンを押したときに適切な順序を反映します。
オンラインで次のようなことを試すように言われている他のものに出くわしました。
Table.Columns["Column Name"].SetOrdinal(NewIndex);
しかし、私はまだそれを実装していません。上記の行が機能しない場合のアイデアはありますか? =)さらに、データテーブルをユーザーがデータグリッドビューで行うことと同期できるようにしたいと考えています。それが理想です。ユーザーがデータグリッドビューで列を移動すると、データテーブルにその変更が反映されます。
洞察があれば大歓迎です。必要に応じて追加情報を提供させていただきます。ありがとう!
よろしくお願いします。
(.NET 3.5 SP1、Visual Studio C# 2008)