У меня есть интервал в моей программе, сохраненный как TimeSpan
. Я хочу привязать значение к слайдеру, чтобы легко настроить TimeSpan. Мой план был что-то вроде этого, но он не работает (он ничего не делает вообще):Привязать временную рамку к слайдеру
EDIT: Изменен код на основе ответов, но все-таки у меня есть та же самая проблема
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 = это
В основном вы никогда не говорите пользовательскому интерфейсу, что ваша ценность изменилась. Google для 'INotifyPropertyChanged'. В этом случае я лично решил использовать «DependencyProperty». – deloreyk