Ejemplo n.º 1
0
        public void AddCustomMemberDescriptor(ICustomMemberDescriptor descriptor)
        {
            if (descriptor == null)
            {
                throw new ArgumentNullException(nameof(descriptor));
            }
            var propItem = new PropertyItem {
                PropertyName = descriptor.DisplayName
            };

            var memberInfos = descriptor.GetMemberInfos();

            if (memberInfos == null)
            {
                LoggerService.WriteCallerLine($"{nameof(memberInfos)} can't be null.");
                return;
            }

            _vm.Items.Add(propItem);
            ThreadInvokerExtensions.AddBufferItemsToCollection(
                propItem.Items,
                memberInfos,
                memberInfo => {
                var infoPropItem = new PropertyItem {
                    PropertyName = memberInfo.DisplayName, Value = memberInfo.Value?.ToString()
                };
                infoPropItem.SetInstance <IMemberInfo>(memberInfo, Constants.PropertyItemTag_MemberInfo);
                return(infoPropItem);
            },
                sleepInterval: 100
                );


            //_vm.Item.CompositeCustomMemberDecriptor(descriptor);
        }