我认为你应该重新审视使用
DependencyProperty
的想法。
如果您有自定义控件,则可以定义任意数量的依赖属性,并让自定义控件拥有自己的响应(通过 PropertyChanged、CoerceValueCallback 和 ValidateValueCallback)。
相反,
IValueConverter
不允许您绑定到转换器参数,因为它不是DependencyProperty
。当您构建更多的复杂性(浮动逻辑)时,您会喜欢有空间通过自定义控件添加所需的所有逻辑。
所以,典型的流程是这样的:
强制值回调旨在防止无效值。例如,对于滑块,您不能将
Value
设置为超出 Max
或 Min
;因此,如果您更新 Min
,它应该强制 Value
在范围内。
我的建议是使用
PropertyChanged
回调来添加逻辑。然后将文本属性设置为输入的某种函数(您可能有两个字符串,其中一个是编辑后看到的值,另一个是编辑时看到的值)。
也许您可以添加一个枚举类型属性来指示您想要应用哪些格式化规则(例如 UInt 格式化、Float 格式化等)