많은 개체를 지원하고 자식 개체의 목록을 바인딩하도록 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가 알림 속성 변경을 발생시키지 않는 것 같습니다.
이것은 자식 개체의 문제입니까? 나는이 모든 잘못을 저지르고 있는가? 전체 편집 템플릿을 만드시겠습니까?