2012-11-18 2 views
0

개체 속성에 바인딩 된 텍스트 상자가 있습니다. 사용자가 컨트롤을 편집하고 변경 내용을 적용하지 않으려는 경우 속성 변경 내용을 취소하려면 어떻게해야합니까?Windows Phone 7.1의 바운드 텍스트 상자에 대한 변경 취소

사용자가 편집을 취소하는 경우에 대비하여 이전 값을 편집하고 복원하기 전에 저장할 수 있다는 것을 알고 있습니다. 그러나이 솔루션은 바인딩 된 모든 속성을 수동으로 다시 설정해야하므로 대부분의 데이터 바인딩의 이점을 제거합니다. 여기

는 XAML

<TextBox Text="{Binding BindingText, Mode=TwoWay}"/> 

그리고 PageLoaded 처리기에서 코드입니다 :

DataContext = App.Binder; // Set data context for the page 

답변

0

당신은 바인딩 한 방향으로 데이터를 사용할 수 있지만, 당신에게 내가 생각하는 목적을 제공하지 않습니다.

개발자가 수동으로 추가 코드 줄을 만들 필요가 없도록 데이터 바인딩이 제공됩니다. 일반적인 작업을 자동화하는 것이 있습니다. 수동으로 제어하려면 수동으로해야합니다. 나는 이것이 당신이 원할지도 모르는 대답이 아니라는 것을 알고있다. 그러나 그것이 그것이있는 방법이다.


이제 추가 속성/변수 및 단방향 바인딩 2 개를 사용하여 설정할 수 있다고 생각합니다. 텍스트 상자 특성 (편도)을 반대하는 바인더 제본되어

이 객체의 속성을하자 그 변수에 바인더 제본 수, 즉,이 속성이 실제 개체 속성 변경 내용을 변경하는 경우 (한 방향으로 만) 그래서 객체 속성 변경 그런 다음 텍스트 상자에 반영됩니다.

그리고 텍스트 변수에 따라 임시 변수 값을 변경하는 제출 버튼을 사용하십시오.

tempVar ----> 개체 속성 개체 속성 ----> 텍스트 상자 텍스트 상자가 수동으로 tempVar를 변경합니다.

하지만 여전히 직접적인 대답은 아니지만 해결 방법 (데이터 바인딩 포함)입니다.

+0

사용자가 편집 페이지로 이동하여 변경 사항을 수락하거나 삭제할 수있는 매우 표준적인 패턴이라고 생각합니다. Windows Phone 바인딩 메커니즘은 데이터를 표시하고 변경 사항을 적용해야하는 경우 완벽하게 작동하지만 취소하기가 쉽지 않습니다. 이러한 기본 기능이 누락 될 수 있다고 나는 믿을 수 없습니다. 모든 모든 페이지/양식/화면에는 적용 및 취소 버튼이 있습니다. 아기조차도 알고 있습니다 :) 아마도 내가 잘못보고있는 것일까 요? –

+0

버튼을 누를 때 발생할 일을 구현해야하는 페이지 및 양식이 있습니다. 나 자신은 자동 모드로가는 것을 좋아하지 않으며 정확한 수동 제어를 원하지만 빠른 개발 환경에서는 항상 가능하지는 않다. 제 생각입니다. –

관련 문제