2012-11-16 3 views
2

저는 디자인 타임에 생성 된 두 항목 (문자열)로 구성된 매우 간단한 ultraoptionset에서 작업하고 있습니다. 옵션 세트 값은 바인딩 소스를 통해 뷰 모델의 문자열 속성에 바인딩됩니다. 데이터 원본 업데이트 모드가 OnPropertyChanged로 설정됩니다.

문제는 view에서 전체 optionset가 포커스를 잃기 전에 viewmodel이 업데이트되지 않는다는 것입니다. 따라서 두 값 사이를 앞뒤로 변경하면 속성이 변경되지 않으므로 데이터가 업데이트되지 않기 때문에 컨트롤의 유효성 검사가 작동하지 않습니다.

나는 매우 어리 석다. 왜냐하면 이것은 매우 간단해야하기 때문이다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? : DUltraoptionset은 포커스를 잃기 전에 데이터 소스를 변경하지 않습니다.

건배!

답변

0

NetAdvantage 2012 볼륨 2에서이를 테스트 한 결과 UI를 통해 선택한 옵션을 변경할 때 UltraOptionSet이 바인딩 된 개체의 속성 설정자가 속성 변경시 업데이트된다는 것을 알았습니다.

public partial class Form1 : Form 
{ 
    TestObject to; 
    public Form1() 
    { 
     InitializeComponent(); 
     to = new TestObject() { Prop = "Two"}; 
     Binding optionBinding = new Binding("Value", to, "Prop"); 
     optionBinding.DataSourceUpdateMode = DataSourceUpdateMode.OnPropertyChanged; 
     this.ultraOptionSet1.DataBindings.Add(optionBinding); 
    } 

} 

public class TestObject 
{ 
    private string prop; 
    public string Prop 
    { 
     get 
     { 
      return prop; 
     } 
     set 
     { 
      System.Diagnostics.Debug.WriteLine("Current value :" + prop + " is being set to " + value); 
      if (value != prop) prop = value; 
     } 
    } 
} 

을 당신이 바인딩에서 올바르게 설정 DataSourceUpdateMode이 있는지 확인하는 것이 좋습니다 : 이것은 내가 사용하는 코드입니다. 필요한 경우 나중에 테스트 할 수있는 NetAdvantage 컨트롤의 서비스 릴리스가 있는지 확인할 수 있습니다.

+0

당신이 옳습니다. 물론 나는 데이터 바인딩을 망쳤다. : D 조 그럼 이제 작동합니다. 감사! :) – user1829991

관련 문제