2017-02-02 6 views
0

다른 단위 (피트 대 미터,도 및 라디안, 마일 대 킬로미터 등)로 많은 값을 표시해야하는 응용 프로그램이 있습니다. 표시된 각 값에는 자체 선택 단위 (피트 또는 미터)가 있어야합니다. 내 첫 번째 생각은 값의 표시를위한 텍스트 상자와 사용 가능한 단위에 대한 콤보 상자만으로 사용자 정의 컨트롤을 만드는 것입니다.다른 단위의 WPF 바인딩/표시

하지만 올바른 단위가 표시되도록 텍스트 상자의 바인딩을 어떻게 작동합니까? 그리고 값을 변경하면 올바른 기본 모델 유형 (피트 또는 미터)의 값이 저장되도록 텍스트 상자의 바인딩을 어떻게 작동합니까?

UPDATE :

@Sledgehammer 제안했던대로 나는 MultConverter를 사용하여 끝났다. 개발자가 제어 할 수 있도록 형식 문자열을 추가했습니다. FeetToMetersMultiValueConverter 내

: 당신은 텍스트 상자에 MultiBinding 사용할 수 있습니다

public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     double value = (double)values[0]; 
     FeetOrMetersSelectionType valueType = (FeetOrMetersSelectionType)values[1]; 
     FeetOrMetersSelectionType displayValueType = (FeetOrMetersSelectionType)values[2]; 
     string valueFormat = (string)values[3]; 

     if (valueType != displayValueType) 
     { 
      if (displayValueType == FeetOrMetersSelectionType.Meters) 
      { 
       value = value * 0.3048; 
      } 
      else 
      { 
       value = value/0.3048; 
      } 
     } 

     return value.ToString(valueFormat); 
    } 
+0

INPC를 구현하는 개체에 측정 및 단위를 캡슐화합니다. 단위가 변경되면 측정을 적절하게 변경하십시오. 타다. – Will

답변

2

IMultiValueConverter. 텍스트와 단위를 MultiConverter에 전달하고 계산을 수행하고 텍스트를 반환하십시오.