RefreshCellValueメソッドを実行してもデータソースの値がセルの表示に反映されない場合がある
対象製品
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
【手順】
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
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