IValueConverter 인터페이스에서 ConvertBack 메서드는 어떤 용도로 사용됩니까?
의 용도는 무엇입니까?ConvertBack의 메서드IValueConverter인터페이스입니다.
언제 부르나요?
또는 의 호출 순서는 무엇입니까?Convert그리고.ConvertBack방법?
여기서 질문한 이유는 다음과 같습니다.코드 속성 하나를 TEXTBOX의 TEXT 속성에 바인드하여 사용하고 있습니다.convertor그 재산에 대해서요.첫 번째Convert메서드가 호출되고 변경 시TEXT에TEXTBOX아무 일도 일어나지 않아...하지만 제가 이 양식을 닫자마자ConvertBack메서드가 호출됩니다.
IMO,ConvertBack메소드는 데이터의 시각적 표현을 특정 DataType으로 변환하는 데 사용됩니다.
예를 들어 Converter를 사용하여 부울을 변환합니다.true현악기에 맞추어"TrueBoolean"이 텍스트는 TextBox에 표시됩니다.TextBox 값을 변경하면ConvertBack바인딩이 다시 시작되자마자 메서드가 호출됩니다(기본값 OnFocusLost).이제 당신의ConvertBack메서드는 새 값을 원하는 데이터 유형으로 변환하려고 합니다.따라서 로직을 구현하여 변환해야 합니다."FalseBoolean"로.false.
public class Converter : IValueConverter
{
object IValueConverter.Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return (bool) value ? "TrueBoolean" : "FalseBoolean";
}
object IValueConverter.ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
var s = (string) value;
if (s.Equals("TrueBoolean",StringComparison.CurrentCultureIgnoreCase))
return true;
if (s.Equals("FalseBoolean", StringComparison.CurrentCultureIgnoreCase))
return false;
throw new Exception(string.Format("Cannot convert, unknown value {0}", value));
}
}
이 기술은 DataGrids에서 많이 사용되고 있습니다.
이게 좀 명확했으면 좋겠는데...
갱신하다
코멘트의 질문에 대해서:
기본값을 덮어쓰려면OnFocusLost바인딩 동작은 다음과 같이 바인딩을 변경해야 합니다.
<TextBox Text="{Binding MyText, UpdateSourceTrigger=PropertyChanged}"/>
<!--syntax might differ, can't access VS at the moment.-->
ConvertBack그 때,mode=TwoWay제본할 수 있습니다
사용자 입력을 바인딩된 데이터 유형으로 다시 변환하고 이 경우TextBox초점을 잃다
예를 들어(이것이 기본 제공되지 않은 경우) 가격을 나타내는 번호가 있는 경우Convertmethod는 값을 올바른 통화 기호, 소수 구분 기호 등의 문자열로 포맷합니다.
사용자가 가능한 통화 기호, 수천 구분 기호 등 새로운 값을 입력할 경우사용하다ConvertBackmethod를 사용하여 문자열을 해석하고 숫자 값을 추출합니다.
또 다른 예로는 신용카드 번호 입력을 들 수 있습니다.사용자는 숫자를 단일 숫자 문자열 또는 공백 또는 대시로 구분된 숫자 그룹으로 입력할 수 있습니다.그ConvertBackmethod는 가능한 모든 입력을 받아 필요한 단일 형식으로 변환합니다.
바인딩의 UpdateSourceTrigger 속성을 확인합니다.http://msdn.microsoft.com/library/system.windows.data.binding.updatesourcetrigger.aspx
텍스트 상자는 포커스가 흐트러지면 기본적으로 소스를 업데이트합니다.UpdateSourceTrigger를 사용하면 텍스트 상자의 내용이 변경되면 이 동작을 즉시 소스 업데이트로 설정할 수 있습니다.
HTH 도미니크
언급URL : https://stackoverflow.com/questions/6424074/what-is-the-use-of-convertback-method-in-ivalueconverter-interface
'programing' 카테고리의 다른 글
| Swift 3, 4, 5에서 GCD 뒤에 dispatch_를 쓰는 방법은 무엇입니까? (0) | 2023.04.14 |
|---|---|
| MAC 주소 가져오기 (0) | 2023.04.14 |
| composer.lock을 버전 제어에 커밋하시겠습니까? (0) | 2023.04.14 |
| 사용 중인 Swift 버전을 확인하려면 어떻게 해야 합니까? (0) | 2023.04.14 |
| iOS에서 프로그램 방식으로 자체 전화 번호 가져오기 (0) | 2023.04.14 |