私は、ユーザーが挿入/更新/削除できるように、linqをdatagridviewにバインドしています。しかし、私はId列を隠したいと思う。私はむしろハードコーディングしたいと思います。プログラムによってdatagridviewでlinq-to-sql列を非表示にするには?
datagridview.columns[id].visible=false
idカラム名が変更された場合。実行時の列のリストを取得するためにリフレクションを進めることができますが、設計時に列名をチェックすることはできません。出来ますか?
IDを含まないようにクエリを変更すると、id列名の代わりに列一覧をハードコーディングしているので、列が追加されていれば、代わりに手動で更新する必要があります。
デザインタイムを使用している場合は、バインディングソースのみが機能します。databinding =/ 現在、部分プロパティとしては存在しませんので、これらの列に[Browsable(false)]属性を追加することはできません。 – Maslow
@Maslow:あなたの質問は、設計時に何かを使いたいと思っていたようです。デザインタイムバインディングを使用したくない、または使用できない特別な理由はありますか?いずれにしても、(datagridview.columnsのような)インデクサーを、コンパイル時に値が渡される限りコンパイル時に安全にする手段はありません。 –
@Adam:DataGridViewは、ユーザーがどのビューに設定されているかに応じて異なるオブジェクトタイプを表示しているため、デザインタイムバインドを行っていません。たぶんこれは時期尚早の最適化であり、異なる設計時のデータグリッドビューを飛び越して飛び越えるオーバーヘッドは悪くありません。うーん、それはプロパティ名のコンパイル時の安全性が存在しないように見えますが、実際にはコンパイラに追加するのは難しい機能のようには思えません。 – Maslow