locked
DataGridでIsReadOnly設定をTrueにすると、ソート時に例外が発生する RRS feed

  • 質問

  • お世話になっております。

    VS2010SP1+SilverLight4でテスト用のアプリを作成しています。

    テスト用というより、勉強中といったほうが正しいですが。

    DataGridを作成していて、下記の動作になって困っています。

    [現象]

    DataGridをグループ化して作成し、のIsReadOnlyプロパティをTrueに設定すると、

    DataGridのタイトルをクリックすしてソートした際に下記の例外が発生する。

    「ハンドルされていない例外("Unhandled Error in SilverLight Application インデックスが範囲を超えています。

    負でない値で、コレクションのサイズよりも小さくなければいけません。")

    System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgumentargument, ExceptionResource resource)」

     

    [詳細]

    下記のURLを参考に、DataGridだけ表示するサンプルを作成しました。

    #1:http://thinkit.co.jp/story/2010/06/15/1600

    #2:http://msdn.microsoft.com/ja-jp/library/ff407126.aspx

     

    作成したソースは、#1のソースほぼそのままのため、省略いたします。

    #1ではVBですが、C#で書いただけです。

    また、#1のURLからサンプルPJがDLできますが、サンプルPJでも、DataGridのIsReadOnlyプロパティをTrueに

    すると、同じ例外が発生しました。

    ためしに、グループ化している

    myCollectionViewSource.GroupDescriptions.Add(new PropertyGroupDescription("ほにゃらら"));

    のコードをコメントアウトして実行したところ、例外は発生しませんでした。

    ネットを検索してみたのですが、現在のところ、同様の現象が見つかっていません。

     

    原因と解決法を教えていただけないでしょうか?よろしくお願いいたします。

    勉強中のため、(ほかの回避方法も参考になりますが)本現象の原因を知りたいと思っています。

    2011年12月16日 9:32