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# - 如何以编程方式创建 NDepend 项目文件?

c# - 在 DataTemplate 中将按钮弹出命令绑定(bind)到 ViewModel 的命令

.net - 在ListView中同步IsSelected和SelectedItem

c# - 如何在运行时更改 WPF 控件绑定(bind)

java - 如何使用绑定(bind)使 JavaFX TextField 中的文本自动更改?

c# - 将 TDD 与 MVC3 一起使用的好库

c# - 如何将小数四舍五入?

c# - 在 HttpWebRequest 中提交请求后无法执行此操作

mvvm - 使用 Master Detail 页面的最佳实践 MVVM 导航?

wpf - 如何在 XAML 编辑器中查看设计时数据绑定(bind)(它在运行时工作)?