我需要提供一个日期范围 slider (WPF)。
是否可以绑定(bind) RangeSlider
到 DateTime
ObservableCollection
中的属性(property)?
编辑:
我尝试了以下但没有成功:
<xctk:RangeSlider HorizontalAlignment="Left" Margin="101,10,0,0" VerticalAlignment="Top" Width="233" Maximum="{Binding MaxRange}" Minimum="{Binding MinRange}"/>
MinRange 和 MaxRange 是我的 ViewModel 中的 DateTime 对象
最佳答案
不,DateTime 是一种值类型,因此是不可变的。并且绑定(bind)不能用不同的对象替换集合中索引 N 处的对象。
绑定(bind)可以改变属性的值。这就是他们所做的一切。时期。
在您的情况下,如果您希望范围 slider 描述一段时间,您需要创建一个具有作为属性公开的开始值和结束值的类。
public class Range : INotifyPropertyChanged
{
// INPC impl omitted because this is c# like pseudocode
public double StartTime {get;set;}
public double EndTime {get;set;}
public TimeSpan ToTimeSpan() { return YourConversionLogicLol(); }
}
IIRC,范围 slider 值是双倍的。由您来定义 double 值在时间方面的含义,并将 UI 中绑定(bind)的值转换为您需要的任何值(范围!= DateTime,范围是两个时间点——开始和结束,所以你让我困惑)。我不知道那个时代的滴答声,或者说是sommet。
关于c# - 我可以将 RangeSlider(来自 WPF 扩展工具包)绑定(bind)到 ObservableCollection 的日期时间属性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35322644/