2016-11-02 6 views
1

의 가치를 얻을하지 않습니다, 나는 의 현재 값을 얻기에 문제가textbox 초점을 맞추고있다 . XtraGrd.GetRow (XtraGrd.FocusedRowHandle가) 내 <code>WinForm</code> 응용 프로그램에서 포커스가 텍스트 상자

내가 내 초점txtTitle에 저장 버튼을 클릭하고 나는 그것을 "TITLE1"를 입력하기 전에 내가 Model.VchType.TitletextBox 바인드를 가정합니다. 이 코드 줄에 중단 점을 안타 후 나는 row.Title에 대한 null을 얻을

Model.VchType row = xtraGrd.GetRow(xtraGrd.FocusedRowHandle) as Model.VchType; 

:

이 저장 버튼 이벤트에 대한 내 코드입니다. 그리고이 문제는 저장 버튼을 클릭하기 바로 전에 발생합니다 포커스txtTitle입니다. 또한 내가 에 의해 열을 생성

[System.ComponentModel.DataAnnotations.Schema.Table("vwVchType", Schema = "Sle")] 
[Serializable] 
public class VchType : Entity 
{ 
    private int _ID; 
    [System.ComponentModel.DataAnnotations.Schema.Column] 
    [RnDisplayName(typeof(Rnw.Sle.Properties.Resources), "ID")] 
    public override int ID 
    { 
     get 
     { 
      return _ID; 
     } 
     set 
     { 
      _ID = value; 
     } 
    } 

    private string _Title; 
    [System.ComponentModel.DataAnnotations.Schema.Column] 
    [RnDisplayName(typeof(Rnw.Sle.Properties.Resources), "Title")]   
    public string Title 
    { 
     get 
     { 
      return _Title; 
     } 
     set 
     { 
      _Title = value; 
     } 
    } 
} 

:

-------- UPDATE ------------ 여기

모델의 코드의 일부입니다 디자이너.

나는 bindingSource을 채우고 격자의 datasource 속성을 디자이너의이 바인딩 소스에 설정합니다.

그리고 문제는 열 이름이라고 생각하지 않습니다. 왜냐하면 저장 버튼을 클릭하기 전에 다른 컨트롤러에 포커스를 맞추면 제대로 작동하고 값이 row.Title이되기 때문입니다.

+0

텍스트 상자가 그리드의 저장소 항목입니까? 아니면 TextComponent가 GridComponent 외부에 있습니까? – Sebi

+0

@Sebi 그것의 저장소 항목 –

+0

데이터를 저장하기 전에 다른 개체에 초점을 설정하십시오. 깨끗하지는 않지만 도움이되는 프로젝트가 있습니다. 따라서 save 메소드의 첫 번째 작업은 포커스를 모든 레이블 또는 sth에 설정하는 것입니다. 그리드 밖으로. – Sebi

답변

0

뭔가를해야합니다. 전화 :

anyControl.Select(); 

저장하기 전에. 그러면 텍스트 상자에서 열려있는 편집기가 닫히고 DataSource에 변경 사항이 게시됩니다. 일반적으로 이것은 때때로 부족한 것으로 보이는 PostEditor();에 의해 이루어져야합니다.

1

당신은 편집기 EditValue 현재 값을 저장합니다

((GridView)xtraGrid.FocusedView).PostEditor(); 

또는 gridView.PostEditor()이를 호출해야합니다. 그런 다음 view.UpdateCurrentRow()을 호출하여 포커스가있는 행의 유효성을 검사하고 해당 값을 데이터 소스에 저장해야합니다.

그래서 당신은 당신은 당신이 당신의 데이터를 저장하기 전에 다른 형태의 객체를 집중할 수있는이

((GridView)xtraGrid.FocusedView).PostEditor(); 
((GridView)xtraGrid.FocusedView).UpdateCurrentRow(); 
Model.VchType row = xtraGrd.GetRow(xtraGrd.FocusedRowHandle) as Model.VchType; 
+0

답변을 주셔서 감사합니다, 나는 gridView.PostEditor() 사용했지만 문제가 해결되지 않았다. 여전히 행에 대해 null이됩니다. –

+0

gridView.FocusedView.PostEditor(); GridView에는 FocusedView에 대한 정의가 포함되어 있지 않습니다. 그래서 대신 gridView.PostEditor()를 사용했습니다. 그러나 peoblem를 해결하지 못했습니다. –

+0

더 많은 코드를 게시 할 수 있습니까? 특히 모델. –