2016-09-09 2 views
1

문제 "점멸"데이터 바인딩 속성 값은

나는 슬라이더 또는 NumericUpDown "기본값"에서 값 jumpes (를 통해 GUI에서 "LuxVoltage"의 값을 변경하는 경우 이 경우 0)을 "실제 값"으로 변경하십시오. 내가 1000 값을 설정하고이 모든 세트를 인쇄 가정하면 (이 종류의 "을 깜박 ")처럼 출력이 모습입니다 :

출력 :

0 
1000 
0 
1000 
[repeat] 

XAML (사용 MahApps.Metro "NumericUpDown")

<metro:NumericUpDown 
    Value="{Binding LuxVoltage, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" 
    Minimum="0" 
    Maximum="65535" 
    /> 
<Slider 
    Value="{Binding LuxVoltage, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" 
    Minimum="0" 
    Maximum="65535" 
    /> 

C 번호 :() 프리즘 "BindableBase"를 사용

private ushort _luxVoltage = 0; 
public ushort LuxVoltage 
{ 
    get { return _luxVoltage; } 
    set { SetProperty(ref _luxVoltage, value); } 
} 
,

요구 사항 :

나는 두 개의 컨트롤에서 같은 값을 조작 해야합니다. 은 "slieder는"단순히 빠른 값을 변경하고, 당신이 깜박임에 문제가 왜 모르는 "NumericUpDown는"상점 정밀도를

+0

슬라이더 도움말에서 UpdateSourceTrigger를 제거하겠습니까? –

+0

아니요, 사용해 보았습니다. 두 컨트롤에서 제거해도 문제가 해결되지 않습니다. – Josu

답변

0

실제 문제는 내 코드베이스의 다른 곳에 있습니다.

- 2 개의 컨트롤에서 1 개의 속성으로 바인드하면 정상적으로 작동합니다.

- 또는 값이 속성에 바인딩 된 다른 값으로 컨트롤 중 하나를 바인딩 고려 *

0

을 제공하지만, 내가 했어 때 두 GUI 것들 체인 과거의 한 가치에서 저는 항상 NumericUpDown을 viewmodel의 속성에 바인딩하고 NumericUpDown 속성에 Slider를 바인딩하는 접근법 (사례를 사용하여)에갔습니다. 그것은 당신을 위해 일할 수도 있습니다.

0

슬라이더 값의 유형이 double입니다. ushort에 바인딩 할 때 슬라이더가 이동하지 않아도 여러 업데이트가 발생합니다. 그런 다음 다른 컨트롤에서 추가 변경 사항을 발생시킬 수 있으므로 Slider 바인딩에 추가하여 슬라이더를 드래그하면 기본적으로 "1.0"으로 설정된 틱 주파수만큼 증가시킵니다.

IsSnapToTickEnabled="True" 
0

당신이 이전에 의미있는 변화를 세터에 들어오는 값을 확인하십시오 SetProperty를 호출하십시오.

private ushort _luxVoltage = 0; 
public ushort LuxVoltage 
{ 
    get { return _luxVoltage; } 
    set 
    { 
     if (_luxVoltage != value) 
     { 
      SetProperty(ref _luxVoltage, value); 
     } 
    } 
}