private void ConfigureRowEditing()
{
if (Controller != null && Controller.RootView != null)
{
var cellEditingStyle = Controller.RootView.GetType().GetCustomAttribute<CellEditingStyleAttribute>();
if (cellEditingStyle == null)
{
if (MemberData != null)
{
cellEditingStyle = MemberData.Member.GetCustomAttribute<CellEditingStyleAttribute>();
}
}
if (cellEditingStyle != null)
{
_EditingStyle = cellEditingStyle.EditingStyle;
_CanEditSource = Controller.RootView;
_CanEditMember = GetMemberFromView(cellEditingStyle.CanEditMemberName);
if (_CanEditMember == null)
{
_CanEditMember = GetMemberFromViewModel(cellEditingStyle.CanEditMemberName);
var dc = Controller.RootView as IDataContext<object>;
if (dc != null && dc.DataContext != null)
{
_CanEditSource = dc.DataContext;
}
}
if (!string.IsNullOrEmpty(cellEditingStyle.EditCommandMemberName))
{
var commandMember = _CanEditSource.GetType().GetMember(cellEditingStyle.EditCommandMemberName).FirstOrDefault();
if (commandMember != null)
{
_EditCommand = ViewParser.GetCommandForMember(_CanEditSource, commandMember);
}
}
}
}
}