【发布时间】:2014-01-29 14:06:26
【问题描述】:
我的程序中有一个间隔保存为TimeSpan。我想将值绑定到 Slider 以轻松调整 TimeSpan。我的计划是这样的,但它不起作用(它什么都不做):
编辑:根据答案更改了一些代码,但我仍然遇到同样的问题
public partial class MainWindow : Window, INotifyPropertyChanged
{
...
TimeSpan measure_gap = TimeSpan.FromSeconds(1); //init
public double Measure_gap
{
get
{
return measure_gap.TotalSeconds;
}
set
{
if (value != measure_gap.TotalSeconds)
{
measure_gap = TimeSpan.FromSeconds(value);
OnPropertyChanged("Measure_gap");
}
}
}
public event PropertyChangedEventHandler PropertyChanged;
public void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
这是我的绑定(我认为问题就在这里)
<Slider HorizontalAlignment="Left" Height="25" Margin="38,202,0,0"
VerticalAlignment="Top" Width="217" Minimum="1" Maximum="10" SmallChange="1"
Value="{Binding ElementName=MainWindow, Path=Measure_gap, Mode=TwoWay}"/>
所以我的问题是,我做错了什么:-) 谢谢 编辑:this..BindingContext = this
【问题讨论】:
-
您基本上永远不会告诉 UI 您的值已更改。谷歌
INotifyPropertyChanged。在这种情况下,我个人会选择使用DependencyProperty。
标签: c# wpf data-binding slider