• 締切済み

SilverLightのDataGridの表示

VisualStudio2010のVB.NETでSilverLightを使ったプログラムの管理をしています。 画面上でDataGridにComboBoxを配置して、データを選択可能な状態にしています。 DataGrid内では、曜日毎に条件を設定していて、メインとサブの2種類の条件を設定できるようになっています。 メインのComboBoxを指定すると、サブのComboBoxの一覧がその条件に合った一覧に変わるようになっています。 このDataGridをスクロールさせたとき、先頭行のサブのComboBoxが勝手に切り替わってしまいます。 選択されているComboBoxのみが影響をうけます。 SilverLightのDataGridは表示されていないところは処理されていないということですが、 スクロールさせて隠れていたところを表示させる際に、カーソルが選択されている所も一緒に処理されてしまう状況です。 一度スクロールさせて、すべてのComboBoxが表示されると、カーソルが選択されているところが影響を受けることはなくなります。 初期表示の際に隠れている所も処理させれば、この現象が解消するのではないかと考えています。 知りたいことは、SIlverLightで初期表示の際に隠れている所の処理を実行させることは可能かということです。 わかりにくい説明で申し訳ありませんが、何かヒントでもいただければと思います。

みんなの回答

  • oboroxx
  • ベストアンサー率40% (317/792)
回答No.2

追加の説明を受けて思ったのが、xamlファイルでbindingしていませんか? xamlファイルでのbinding指定は辞めて、comboboxの選択時に動的にbindingするようにすれば直るかと思います。 頑張ってください。

norip_7
質問者

お礼

回答ありがとうございます。 返事が遅れて申し訳ありませんでした。 今回の件に関しては、ScrollViewerの中にDataGridを配置することで、 なんとか解決することができました。 ありがとうございました。

  • oboroxx
  • ベストアンサー率40% (317/792)
回答No.1

Silverlightは触ったことはないのですが、スーパーセットであるWPFでDataGridを触った時の感触から思ったことを。 DataGridは、行数が表示域以上にあっても自動的にスクロールバーが出なかった気がします。 それで、質問者さんはComboBoxを中に入れているということですので、ComboBoxにフォーカスがある状態でマウスのホイールでスクロールさせようとするとComboBoxがスクロールしているのではないでしょうか? それであればDataGridをScrollできるコンテナに入れてマウスクリックでスクロールバーをクリックすると解消されるのかなと思います。 勘違いでしたらすみません。 頑張ってください。

norip_7
質問者

お礼

回答ありがとうございました。 説明が不十分で申し訳ありません。 ComboBoxはメインとサブの構成になっていて、元々はメインのComboBoxが選択されると、サブにその条件に合った一覧が表示されるようになっています。 今回はメインが選択されていない状態で一覧にはなにも表示されていない状態のものがスクロールさせると関係のない一覧ができてしまいます。 メインとサブの組み合わせが複数あり別のすでに設定されているものが勝手に追加されているという状況になります。 SilverLightも初めてで、質問するのもはじめてなもので申し訳ありません。 ありがとうございました。