c# - 我可以将 RangeSlider(来自 WPF 扩展工具包)绑定(bind)到 ObservableCollection 的日期时间属性吗?

标签 c# mvvm data-binding rangeslider

我需要提供一个日期范围 slider (WPF)。
是否可以绑定(bind) RangeSliderDateTime 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/

相关文章:

c# - AutoCAD .NET 选择集过滤器 : What types of entities can be add to the filter to be selected?

c# - 如何在 Unity 中更改对象的枢轴点

c# - 如何将 xml 绑定(bind)到 wpf TreeView ?

c# - 使用 WPF MVVM 模式实现接口(interface)

asp.net - 将代码隐藏中的公共(public)字符串获取到ListView的LayoutTemplate中

c# - 数据绑定(bind)到列表框

c# - 如何处理我们没有引用的一次性元素?

c# - 如何调试 Fiddler 扩展

c# - 如何将 Datagrid 的 header 绑定(bind)到 View 模型中的值?

c# - WPF 数据绑定(bind) : How to data bind an enum to combo box using XAML?