RefreshCellValueメソッドを実行してもデータソースの値がセルの表示に反映されない場合がある

文書番号 : 38258     文書種別 : 不具合     登録日 : 2015/04/01     最終更新日 : 2015/11/09
文書を印刷する
対象製品
SPREAD for WPF 1.0J
状況
修正済み
詳細
RefreshCellValueメソッドを実行してもデータソースの値がセルの表示に反映されない場合があります。

【手順】
1.新規ウィンドウにSPREADとButtonを配置します
2.下記サンプルコードをコピーし、アプリケーションを実行します
3.Buttonをクリックします
   --A11セルの表示が「11」のままで「-1」になりません

【サンプルコード】
  Public Sub New()
    InitializeComponent()

    GcSpreadGrid1.ItemsSource = Me.Numbers
  End Sub

  Private Class MyData
    Public Property Number() As Integer
      Get
        Return m_Number
      End Get
      Set(value As Integer)
        m_Number = value
      End Set
    End Property
    Private m_Number As Integer
  End Class

  Private Numbers As List(Of MyData) = Enumerable.Range(1, 100).Select(Function(i As Integer) New MyData() With {.Number = i}).ToList()

  Private Sub Button1_Click(sender As Object, e As RoutedEventArgs) Handles Button1.Click
    Me.Numbers(10).Number = -1
    GcSpreadGrid1.RefreshCellValue()
  End Sub
回避方法
Service Pack 2(v1.0.2015.1109)で修正済み。
Service Pack 2(v1.0.2015.1109)より前のバージョンでは次の回避方法が有効です。
------------------------------------------

以下のサンプルコードのようにRefreshメソッドを実行します。

【サンプルコード】
  Private Sub Button1_Click(sender As Object, e As RoutedEventArgs) Handles Button1.Click
    Me.Numbers(10).Number = -1
    CollectionViewSource.GetDefaultView(Me.GcSpreadGrid1.ItemsSource).Refresh()
  End Sub