2010-01-12 3 views
0

많은 개체를 지원하고 자식 개체의 목록을 바인딩하도록 DataForm을 구부리고 있습니다. 나는 객체의 표시를 제어하고 on change 이벤트에 대한 액세스 권한을 가질 수있는 한 멀리 봤습니다. 예를 들어Silverlight, DataForm, AutoGeneratingField, RIA 서비스 및 하위 엔터티

: 여기

OfferEditorForm.AutoGeneratingField += new EventHandler<DataFormAutoGeneratingFieldEventArgs>(OfferEditorFormGeneratingField); 

그리고 내 작은 우선입니다 :

if (e.PropertyName == "Client") 
     { 
      var stack = new StackPanel(); 
      var dataField = new DataField { Content = stack, Label = "Client:" }; 
      var binding = new Binding("CustomerClients") { Source = _viewModel }; 
      var combo = new ComboBox 
      { 
       DisplayMemberPath = "Name", 
       Name = "OfferEditForm_Client", 
       SelectedItem = _viewModel.CustomerLoyaltyProgramOffer.Client 
      }; 

      combo.SetBinding(ComboBox.ItemsSourceProperty, binding); 
      combo.SelectionChanged += new SelectionChangedEventHandler(CustomerClients_SelectionChanged); 
      stack.Children.Add(combo); 
      dataField.Content.UpdateLayout(); 
      e.Field = dataField; 
     } 

나는 SelectedChanged 이벤트를 잡아 내보기 모델 항목을 업데이트하고있어, 그는 다음과 같이 설정

void CustomerClients_SelectionChanged(object sender, SelectionChangedEventArgs e) 
    { 
     FrameworkElement frameworkElement = sender as FrameworkElement; 
     ComboBox comboBox = (ComboBox)frameworkElement.FindName("OfferEditForm_Client"); 
     if (comboBox != null) 
     { 
      _viewModel.CustomerLoyaltyProgramOffer.Client = (CustomerClient)comboBox.SelectedItem; 
      _viewModel.CustomerLoyaltyProgramOffer.CouponImage = "OMG!"; 
     } 
    } 

내가이 예에서 변경 사항을 제출

, 쿠데타 : 같은 폼의 현재 항목 onImage는 내 도메인 서비스의 Update 메소드 위로 보내지 만 클라이언트는 여전히 NULL입니다.

CustomerLoyaltyProgramOffer가 알림 속성 변경을 발생시키지 않는 것 같습니다.

이것은 자식 개체의 문제입니까? 나는이 모든 잘못을 저지르고 있는가? 전체 편집 템플릿을 만드시겠습니까?

답변

관련 문제