textbox.textchanged 이벤트에 문제가 있습니다. 내 텍스트 상자는 데이터 바인딩되어 있으며 페이지가로드되면 텍스트 변경 이벤트가 트리거됩니다. 어떻게 발생하지 않도록하고 사용자가 어떤 종류의 변경 작업을 수행 할 때만 트리거합니까?Textbox.TextChanged 페이지가로드 될 때 트리거됩니다. 어떻게 방지합니까?
답변
내부의 TextChanged 이벤트 핸들러 :
if (this.IsLoaded)
{
//your logic here
}
당신의 TextChanged 이벤트의 첫 번째 발사를 건너 뛸 수 있습니다 이러한 방법으로, 윈도우는 아직로드되지 않은 경우.
음, 사용자가 사용자가 명시 적으로 양식을 저장하거나 닫을 때 기본 데이터로만 변경 내용을 적용하기를 원한다는 의견을 수집합니다.
UpdateSourceTrigger "Explicit"을 여기에서 사용할 수 있습니다.
<TextBox Text={Binding MyData, UpdateSourceTrigger=Explicit}/>
그래서 변경 사항은 사용자가 저장 버튼을 칠 때 명시 적으로 바인딩에 UpdateSource를 호출하여 전파됩니다.
MVVM을 사용하는 경우 동일한 논리를 ViewModels에 코드 방식으로 구현할 수도 있습니다. 창 (또는 UserControl을, 또는 무엇이든)가로드되는 경우 확인할 수 있습니다
텍스트가 설정 될 때마다 TextChanged가 트리거되는 것이 문제입니다. WPF가 작동하는 방식입니다. Window/Usercontrol의 Loaded 이벤트에 가입하여 코드 비헤이비어에서 이벤트를 설정함으로써이를 "수정할"수 있습니다. 로드 된 이벤트는 모든 하위 및 하위 항목의로드가 완료되고 표시 될 준비가 된 후에 실행됩니다.
<UserControl ---- Loaded="UserControl_Loaded">
-
public void UserControl_Loaded(object sender, RoutedEventArgs e)
{
_txtBox.TextChanged += txt_changed;
}
public void txt_changed(object sender, RoutedEventArgs e)
{
(...)
}
나는 이것이 작동하지 않는 이유는 내 textboxes databound이며, 내 default 값은 그들이 textchanged 이벤트가 발생하게로드를 마친 후 텍스트 상자에로드됩니다 생각합니다. – will0809
나는 동일한 문제가있어서 해결 방법이있다.
창에로드 된 변수를 추가하고이를 Window_Loaded 이벤트의 끝에서 true로 설정했습니다.
TextChanged 이벤트에서 변수가 true인지 확인하십시오.
- 1. json은 내 페이지가로드 될 때
- 2. 페이지가로드 될 때 코드 실행
- 3. 페이지가로드 될 때 양식이 제출됩니다.
- 4. 페이지가로드 될 때 onclick 트리거
- 5. a : 색인 페이지가로드 될 때 활성 링크
- 6. 페이지가로드 될 때 javascript xml 파일 공급
- 7. 자바 스크립트 버튼 페이지가로드 될 때 "선택됨"
- 8. 페이지가로드 될 때 두 개의 창이 열림
- 9. 페이지가로드 될 때 ajax를 사용하여 이미지를로드하는 방법
- 10. jquery trigger : 페이지가로드 될 때 링크를 트리거하는 데 어떻게 사용해야합니까?
- 11. 페이지가로드 될 때 첫 번째 탭 표시
- 12. 페이지가로드 될 때 설정 확인란이 적용됩니다.
- 13. 페이지가로드 될 때 Facebook처럼 버튼을 트리거하십시오.
- 14. 웹 페이지가로드 될 때 팝업되는 AlertView를 제거하십시오.
- 15. webOS에서 페이지가로드 될 때 기능 수행
- 16. 페이지가로드 될 때 데이터 가져 오기
- 17. 페이지가로드 될 때 div를 전환하는 방법은 무엇입니까?
- 18. 페이지가로드 될 때 jQuery의 .on() 이벤트 트리거
- 19. 페이지가로드 될 때 회 전자로드 표시
- 20. DropKick.js 메뉴 - 페이지가로드 될 때 항상 열림
- 21. 페이지가로드 될 때 javascript 함수를 실행하십시오.
- 22. 웹 페이지가로드 될 때 셀렌이 실행되지 않습니다.
- 23. 페이지가로드 될 때 jQuery 팝업을 실행 하시겠습니까?
- 24. 페이지가로드 될 때 Scriptaculous 자동 완성
- 25. 페이지가로드되었습니다. 페이지가로드 될 때 index.html로 전달
- 26. 페이지가로드 될 때 선택으로 라디오 입력 표시
- 27. 페이지가로드 될 때 많은 요청 (require.js)
- 28. 페이지가로드 될 때 ActionListener를 실행하는 방법은 무엇입니까?
- 29. 페이지가로드 될 때이 스크립트 트리거
- 30. 페이지가로드 될 때까지 PyQt 대기
이 초기 이벤트 호출이 왜 처음부터 문제가되는지 물어볼 수 있습니까? 어쩌면 우리는 문제의 배경에있는 문제를 해결할 수 있습니다. – Amenti
안녕 Amenti. 저장 및 취소 버튼이있는 탐색 페이지가 있습니다. 처음에는 두 개의 기본값으로 채워진 여러 개의 텍스트 상자가있는 페이지가로드됩니다. 저장 버튼과 취소 버튼을 누르기 전에 사용자가 해당 페이지를 탐색 할 수있는 기능을 제한해야합니다. – will0809
취소 버튼을 다음과 같이 시뮬레이션 할 수 있습니다. someButton.RaiseEvent (new RoutedEventArgs (Button.ClickEvent)); 하지만 작동하지 않았습니다. 나는 InitializeComponent() 다음에 이것을 넣는다. 내가 잘못하고 있니? – will0809