private void CellEditElement_SelectionChanged(object sender, SelectionChangedArg e, object dataContext)
        {
            if (internalChange)
            {
                return;
            }
            //فقط وقتی کاربر انتخاب میکند باید اینجا بیاد
            var property = dataContext.GetType().GetProperty(this.DataMemberBinding.Path.Path);

            if (property != null)
            {
                if (e.SelectedItem != null)
                {
                    var sourcevalueproperty = e.SelectedItem.GetType().GetProperty(this.SelectedValueMemberPath);
                    if (sourcevalueproperty != null)
                    {
                        //AppendToItemsSource(e.SelectedItem);
                        var value = sourcevalueproperty.GetValue(e.SelectedItem);
                        property.SetValue(dataContext, value);
                    }
                }
                else
                {
                    if (property.PropertyType == typeof(string))
                    {
                        property.SetValue(dataContext, null);
                    }
                    else if (MyBaseLookup.IsNumericType(property.PropertyType))
                    {
                        property.SetValue(dataContext, 0);
                    }
                }
            }
        }
 private List <object> FindItemInItemsSource(IList itemsSource, string bindvalue)
 {
     if (itemsSource != null)
     {
         var filter = new Dictionary <string, string>();
         filter.Add(SelectedValueMemberPath, bindvalue.ToString());
         return(MyBaseLookup.GetFilteredItems(itemsSource, filter));
     }
     else
     {
         return(new List <object>());
     }
 }