2010-07-06 6 views
2

기본적으로 최대 또는 최소 속성이 변경 될 때 약간의 계산이 필요하지만 Slider 컨트롤에는이 상황이 발생했을 때 볼 수있는 이벤트가 없습니다.슬라이더 최대 최소 변경됨

아이디어가 있으십니까?

감사합니다.

답변

1

값을 변경할 때 알아 두어야합니다. 알림 작업을 최대 및 최소 (바인딩을 통해 직접 또는 간접적으로)를 설정하는 클래스로 이동하십시오.

ViewModel을 사용하는 경우 ViewModel이이 작업을 수행하게하는 훨씬 더 깔끔한 방법 일 것입니다. 그러면 Mediator like that one을 사용할 수 있습니다.

+0

코드의 일부 디자인상의 제약으로 인해 첫 번째 옵션을 사용했습니다. 도와 주셔서 감사합니다! – Carlo

0

최대 값은 종속성 속성이므로보기 모델의 일부 속성에 바인딩 할 수 있습니다.

3

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); 
     }); 
    } 
} 
관련 문제