【VisualStudio】デザインとコードのバインド

年忘れに一記事。

 

現在開発に携わっているシステムはサーバー側をJava(eclipse)、クライアント側をC#(Visual Studio)で開発している。

 

新規にチェックボックスを設置し、その入力値をもとに検索をかける、という追加開発中にエラーが。

 

「DataSource のプロパティまたは列 ●● にバインドできません」

 

ほう。

内容としては、エラーメッセージが示すとおり、用意した変数(クライアントからサーバーへ渡すために用意したもの)と画面項目(チェックボックス)が紐づいていないために画面描画ができません、というもの。

この画面を開こうとする時点でエクセプションをはいてしまう。

 

所属するチームでは、データテーブルを管理するプロジェクトと、画面項目の管理を行うプロジェクトを別に管理している。

行った修正は

①データテーブル管理プロジェクトのxsdの該当データテーブルへの項目追加

②画面項目管理プロジェクトのdesigner.csに表示位置や初期値を設定
の大きく二点。

大きな改修でもなく、すでにあるコードをコピペしつつ必要な箇所のみ独自に修正していくだけだったので大きな問題なぞ起こらないと思っていたらこれである。

 

対処方法は以下。

 

画面項目管理プロジェクトのデザインを開いて追加した要素をクリック。

f:id:satomiO:20171228162835p:plain

選択するとこのようなラインで囲まれるはず。

この状態でプロパティを確認。

f:id:satomiO:20171228163057p:plain

この(DataBindings)という項目がデータテーブルと画面デザインの紐づけを管理している。

今回追加したのはチェックボックスだったので「Checked」という項目に、紐づけるべきデータテーブルとその項目名が表示されるのだが…

ぱっと見紐づけがされているのだが、「Checked」に右にあるセルをクリックし、プルダウンを開くと

f:id:satomiO:20171228163549p:plain

 

この「バインド先のBindingSourceを選択してください」の部分に「バインドされていません」というメッセージが表示される…

はあ?

じゃあプルダウン開かなくても、紐付け「(なし)」って表示しておいてよう!

てっきり紐づけされてると思ってたやんけ!

 

ここでデータソースを選択して、対象の項目をクリックすると紐づけ完了。簡単。

あとはクリーン→ビルドで、自動生成でほかのファイルのプロパティも変更してくれる。

 

初めてのVisual Studio、初めてのC#ということもあり苦戦したのだが、終わってみればどうということはない。

むしろ超簡単。

きっと一生忘れない。

 

この経験を通して、すこしC#、VSも理解できてきたように感じる。

にしても、VSのパフォーマンスが悪くてまあしょっちゅうPCが固まるのだがなんとかならないかなー

eclipseと同時に起動してるとビジー状態になり、ビルドが全然進まない。全然進まない。ヘイトが溜まっていく一方だ…

 

これは年明けの課題としましょう。

それでは。