Максимальный минимум слайдера изменен - PullRequest
2 голосов
/ 06 июля 2010

В основном мне нужно выполнить некоторые вычисления при изменении свойств Maximum или Minimum, но в элементе управления Slider нет события, которое позволяло бы мне просматривать его, когда это происходит.

Есть идеи?

Спасибо!

Ответы [ 3 ]

3 голосов
/ 07 июля 2010

Вы можете зарегистрироваться, чтобы получать события при смене DP.

<Slider Loaded="OnSliderLoaded"/>

private void OnSliderLoaded(object sender, RoutedEventArgs e)
{
    Slider slider = sender as Slider;
    DependencyPropertyDescriptor dpd = DependencyPropertyDescriptor.FromProperty(Slider.MinimumProperty, typeof(Slider));
    if (dpd != null)
    {
        dpd.AddValueChanged(slider, delegate
        {
            Debug.WriteLine("Minimimum changed:" + _slider.Minimum);
        });
    }
}
1 голос
/ 06 июля 2010

Вы должны знать, когда вы изменяете эти значения - просто переместите задание уведомления в класс, который устанавливает Максимум и Минимум (прямо или косвенно через привязку).

При использовании ViewModel это было бы намного более чистым способом (позволяя ViewModel делать эту работу) - тогда вы могли бы использовать Mediator, подобный этому .

0 голосов
/ 06 июля 2010

Максимум - это свойство зависимости, поэтому вы можете связать его с некоторым свойством модели представления.

...