2012-10-30 4 views
3

를 사용할 때 작동하지 바인딩 내 문제입니다. 텍스트 상자는 double 속성에 바인딩됩니다. 원래 사용자가 소수점이있는 숫자를 입력하면 숫자가 1 일 때 모든 키 스트로크 이후에 업데이트 할 때 충돌하기 때문에 충돌이 발생합니다. 자동으로 1 (소수점 제거)로 변경되고 10 진수 다음에 다음 숫자를 추가 할 때 새 문자를 삽입하는 위치는 위치 3이라고 생각하지만 십진수는 자동으로 제거되었으므로 더 이상 위치가 잘못되었습니다. 3 오류가 있습니다. xaml에 StringFormat={}{0:d}을 추가하여이 문제를 해결했습니다. 이것은 모든 것이 처음으로로드 될 때 원래 값이 더 이상 나타나지 않는다는 사실을 제외하고는 정상적으로 작동했습니다 (데이터베이스의 값). 하지만 StringFormat 만 제거하면 값이로드되지만 다시 충돌 문제가 발생합니다.WPF 텍스트 상자는 여기에있는 StringFormat

아이디어가 있으십니까?

테스트
<TextBox Grid.Column="1" Margin="0" VerticalAlignment="Top" 
          Controls:TextBoxMask.NumericType="Double" 
          Text="{Binding Path=Model.Processor.BulkShiftInMilliseconds, UpdateSourceTrigger=PropertyChanged, StringFormat={}{0:d}}"/> 
+0

Visual Studio 출력 창을 보셨습니까? 일반적으로 거기에있는 바인딩 오류를 해결하는 데 유용한 정보를 찾을 수 있습니다. –

+0

내가 한 것 : 'StringFormat'변환기가 '1'값 ('Double'유형)을 변환하지 못했습니다. –

답변

0

, 몸은 30 자

StringFormat={}{0} 
+0

그게 텍스트 상자를 채울 수 있지만 입력 된 텍스트 유효성 검사를 할 때 뒤에 코드에서 소수 자릿수를 삭제하는 문제가 다시 있습니다. –

+0

내 문제의 근본을 찾아 냈습니다. 다음 링크를 참조하십시오. –

관련 문제