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# - 我可以添加转换为 Base64 的字符串作为 URL 的一部分吗?

WPF-MVVM : TabItem Header click event handling in viewmodel

c# - asp.net Repeater - 获取对当前项目的引用

asp.net - 动态地将用户控件添加到转发器

C# for 循环在 html MVC 中

c# - Join with Where 子句的查询和方法 (lambda) 语法的等效性

android - 从 View 模型类中获取 Activity 的上下文

android - Textview 和 Seekbar 绑定(bind)到同一个属性,但是 textview 不显示更新的值

c# - ValueConverter 的依赖属性

c# - 使用 SSL/TLS 协议(protocol)来保护与 m2mqtt 的通信