다른 단위 (피트 대 미터,도 및 라디안, 마일 대 킬로미터 등)로 많은 값을 표시해야하는 응용 프로그램이 있습니다. 표시된 각 값에는 자체 선택 단위 (피트 또는 미터)가 있어야합니다. 내 첫 번째 생각은 값의 표시를위한 텍스트 상자와 사용 가능한 단위에 대한 콤보 상자만으로 사용자 정의 컨트롤을 만드는 것입니다.다른 단위의 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);
}
INPC를 구현하는 개체에 측정 및 단위를 캡슐화합니다. 단위가 변경되면 측정을 적절하게 변경하십시오. 타다. – Will