ああ、もう!!ScrollViewerってやつはよっ!!

スポンサーリンク

SilverLight:ScrollViewerコントロールの循環参照のお話です。

ScrollViewerのoffset値に動的に値をくれてやってんですが、とある条件で循環参照エラーちゃんが出るわけです。

見慣れたブラウザ真っ白の左下に警告マークですよ。

何ででんのかなーなんて色々と試していてのですが訳も解らず、とりあえずコーヒーとタバコを吸ってたんです。

頭が糖分とカフェインとニコチンとタールですっきりした瞬間、圧倒的閃きで気付いたわけです。

動的にScrollViewer本体のスケーラブルを変えてたわけなのですが、ある一定の大きさにすると100%の確立で起きていたのでワクテカ感覚でデバッグしたらキタコレでした。

ScrollViewerのActualWidthやActualHeightよりも大きな値をoffset値に突っ込むと発生するようです。

ScrollViewerの子コンテンツが本体よりも大きな場合、スクロールが表示されるわけですが、子コンテンツの大きさで計算をして本体のoffset値にその値を入れるとアボンです。

他にも色々と条件が重なって発生しているような気もしますがとりあえずこれで解決したのでもうおしまい。

 

コメント