两个相互依赖的滑块

时间:2011-01-05 19:52:09

标签: c# .net wpf

我定义了两个滑块,每个滑块的值介于0到200之间。一个滑块用于最小值,第二个滑块用于最大值。

现在要求是最低<最大值。我可以在两个滑块的侦听器方法中确保这个要求,但我想防止用户甚至可以在滑块上选择不符合此要求的值。我怎么能这样做?

2 个答案:

答案 0 :(得分:3)

如果您正在使用演示模式,例如MVVM ......

将每个滑块绑定到演示模型/视图模型中的属性。确保在绑定上设置Mode=TwoWay

现在,在视图模型中,您可以让您的setter完成工作。他们可以停在极限(设置其他财产的地方),或者推动补充财产。例如,如果max设置为100,并且用户将min滑动到150,则还可以将max设置为150。只要您提出属性更改通知,用户也会看到另一个滑块移动。

答案 1 :(得分:2)

一种方法是将当前“最小”滑块值绑定到“最大”滑块的“最小”属性,反之亦然。当滑块重新定位时,这可能会产生轻微的奇怪效果,但它肯定会阻止无效选择。