public QuoteLineItemEditorViewModel() { Lines = new EntityDataViewModel(10, typeof(QuoteDetail), false); Lines.OnSelectedRowsChanged += OnSelectedRowsChanged; Lines.FetchXml = @"<fetch version='1.0' output-format='xml-platform' mapping='logical' returntotalrecordcount='true' no-lock='true' distinct='false' count='{0}' paging-cookie='{1}' page='{2}'> <entity name='quotedetail'> <attribute name='productid' /> <attribute name='productdescription' /> <attribute name='priceperunit' /> <attribute name='quantity' /> <attribute name='extendedamount' /> <attribute name='quotedetailid' /> <attribute name='isproductoverridden' /> <attribute name='ispriceoverridden' /> <attribute name='manualdiscountamount' /> <attribute name='lineitemnumber' /> <attribute name='description' /> <attribute name='transactioncurrencyid' /> <attribute name='baseamount' /> <attribute name='requestdeliveryby' /> <attribute name='salesrepid' /> <attribute name='uomid' /> {3} <link-entity name='quote' from='quoteid' to='quoteid' alias='ac'> <filter type='and'> <condition attribute='quoteid' operator='eq' uiname='tes' uitype='quote' value='" + GetQuoteId() + @"' /> </filter> </link-entity> </entity> </fetch>"; Lines.SortBy(new SortCol("lineitemnumber", true)); Lines.NewItemFactory = NewLineFactory; QuoteDetailValidation.Register(Lines.ValidationBinder); SelectedQuoteDetail.SetValue(new ObservableQuoteDetail()); }