我需要通过自定义控件中的代码将格式应用于Text属性,即拦截值并对其进行格式化。我无法使用StringFormat
**。
我正在寻找一个从VM设置值时将触发的事件,因此我可以拦截那里的值。
**我使用的是UpdateSourceTrigger="PropertyChanged"
,但这与StringFormat
答案 0 :(得分:1)
自定义控件通常不会映射到VM,也不会直接公开其模板以进行绑定。你的意思是UserControl吗?
如果它确实是自定义控件,那么您应该在控件上公开依赖项属性以供VM绑定。然后在控件模板中,您也可以通过转换器将文本框绑定到它。
答案 1 :(得分:0)
对于这些要求,我建议您使用转换器
Text="{Binding YourTextValue, Converter={StaticResource FormatConverter}}"
和转换器为 -
Public Class FormatConverter
Implements IValueConverter
Public Function Convert(ByVal value As Object, ByVal targetType As Type, ByVal parameter As Object, ByVal culture As CultureInfo) As Object Implements IValueConverter.Convert
Return ' your formatted string
End Function
Public Function ConvertBack(ByVal value As Object, ByVal targetType As Type, ByVal parameter As Object, ByVal culture As CultureInfo) As Object Implements IValueConverter.ConvertBack
' do nothing. or may be if you want to
End Function
End Class