Silverlight telerik gridview使用MVVM强制绑定刷新

Silverlight telerik gridview使用MVVM强制绑定刷新,silverlight,mvvm,Silverlight,Mvvm,这是一个场景: 我的页面上有一个telerik gridview,它绑定到PagedCollectionView “GekoppeldeOntvangstRegel”类物品 此类实现INotifyPropertyChanged 有几列具有绑定到此类的对象的TextBlock的CellTemplate,如下所示: <TextBlock Text="{Binding ConverterParameter='aantal', Converter={StaticResource Gekoppel

这是一个场景:

我的页面上有一个telerik gridview,它绑定到PagedCollectionView “GekoppeldeOntvangstRegel”类物品

此类实现INotifyPropertyChanged

有几列具有绑定到此类的对象的TextBlock的CellTemplate,如下所示:

 <TextBlock Text="{Binding ConverterParameter='aantal', Converter={StaticResource GekoppeldeRegelDecimalFormatConverter}, NotifyOnValidationError=True, ValidatesOnDataErrors=True, ValidatesOnExceptions=True, ValidatesOnNotifyDataErrors=True}" HorizontalAlignment="Right" ToolTipService.ToolTip="{Binding ConverterParameter='aantal', Converter={StaticResource GekoppeldeRegelToolTipDecimalFormatConverter}}" />

此转换器将“Aantal”属性转换为具有特定小数位数的字符串。 当我用OnPropertyChanged(“Aantal”)从代码中更新“Aantal”属性时,绑定当然不会更新(因为textblock绑定到整个对象,而不是属性),所以旧值仍然可见

属性更改时,如何刷新viewmodel或对象中的列内容


当我直接绑定到“Aantal”属性时,一切都能正常工作(除了不应用转换器之外,这是必要的)

作为一种解决方法,我现在在“GekoppeldeOntvangstRegel”类上创建了几个额外的属性

这些属性调用转换器并返回正确的值和正确的小数位数。 在这些属性上,OnPropertyChanged确实可以刷新绑定


我对这个解决方案不是很满意,但它目前还可以工作。

为什么不将文本绑定到属性本身?对象“GekoppeldeOntvangstRegel”由实体框架提供,并且具有多个指向其他对象的导航属性。需要这些对象来确定需要在列中显示的小数位数。这是在转换器中完成的,因此绑定到属性本身是不够的。遗憾的是,转换器不能有带绑定的转换器参数,只能有一个静态值。