滑块最小/最大绑定到Int常量

dba*_*boa 3 data-binding wpf types converter slider

我有一个整数常量来定义一些整数数据的最小值和最大值,我想将它们绑定到Slider控件属性,就像我在另一个数字编辑器上做的那样,但似乎不可能.

有没有简单的方法来实现这个?也许有价值转换器,或我错过了什么?

一些示例代码:

public const Int32 EXAMPLE_MIN_VALUE = 23;
public const Int32 EXAMPLE_MAX_VALUE = 55;
Run Code Online (Sandbox Code Playgroud)

这工作正常,我使用WpfToolkit的整数编辑器:

<WpfToolkit:IntegerUpDown Value="{Binding ExampleValue}" 
    Minimum="{x:Static Model:Configuracion.EXAMPLE_MIN_VALUE}" 
    Maximum="{x:Static Model:Configuracion.EXAMPLE_MAX_VALUE}" />
Run Code Online (Sandbox Code Playgroud)

但是当我尝试使用Slider时,它会崩溃:

<Slider Value="{Binding ExampleValue}" 
    Minimum="{x:Static Model:Configuracion.EXAMPLE_MIN_VALUE}" 
    Maximum="{x:Static Model:Configuracion.EXAMPLE_MAX_VALUE}" />
Run Code Online (Sandbox Code Playgroud)

H.B*_*.B. 5

如果您x:Static直接使用没有类型转换的空间,因此当您尝试在double属性上设置int时会导致异常,但如果您这样做它可以正常工作:

Minimum="{Binding Source={x:Static local:MainWindow.TestConstInt}}"
Run Code Online (Sandbox Code Playgroud)

这是因为绑定在必要时应用类型转换器.即使没有合适的类型转换器,您也可以添加一个Binding.Converter.