将属性从 ItemsControl 源类传递到转换器参数

问题描述 投票:0回答:1
c# wpf itemscontrol ivalueconverter
1个回答
0
投票

我认为你应该重新审视使用

DependencyProperty
的想法。

如果您有自定义控件,则可以定义任意数量的依赖属性,并让自定义控件拥有自己的响应(通过 PropertyChanged、CoerceValueCallback 和 ValidateValueCallback)。

相反,

IValueConverter
不允许您绑定到转换器参数,因为它不是
DependencyProperty
。当您构建更多的复杂性(浮动逻辑)时,您会喜欢有空间通过自定义控件添加所需的所有逻辑。

所以,典型的流程是这样的:

  • 决定需要设置多少个属性(多少个单向、双向、单向源)
  • 连接回调,以便控件实例能够响应属性更改。
  • 更新任何只读(单向源)属性)

强制值回调旨在防止无效值。例如,对于滑块,您不能将

Value
设置为超出
Max
Min
;因此,如果您更新
Min
,它应该强制
Value
在范围内。

我的建议是使用

PropertyChanged
回调来添加逻辑。然后将文本属性设置为输入的某种函数(您可能有两个字符串,其中一个是编辑后看到的值,另一个是编辑时看到的值)。 也许您可以添加一个枚举类型属性来指示您想要应用哪些格式化规则(例如 UInt 格式化、Float 格式化等)

© www.soinside.com 2019 - 2024. All rights reserved.