private void OnDeviceSettingValueChanged(ParserDeviceSettingValue in_value_info)
 {
     if (!m_dialog_initializing)
     {
         CommunicationManager.Default.FileTransfer.FileUploadStart(m_files_info[0].FileID, (uint)in_value_info.BinaryOffset, in_value_info.GetBinaryData(), null);
     }
 }
        public override DataTemplate SelectTemplate(object item, DependencyObject container)
        {
            ParserDeviceSettingValue obj = item as ParserDeviceSettingValue;

            if (obj != null)
            {
                //use reflection to retrieve property
                Type         type     = obj.GetType();
                PropertyInfo property = type.GetProperty(this.PropertyName);

                if (property == null)
                {
                    return(base.SelectTemplate(item, container));
                }

                ParserDeviceSettingValue.ValueType value_type = (ParserDeviceSettingValue.ValueType)property.GetValue(obj);

                switch (value_type)
                {
                case ParserDeviceSettingValue.ValueType.Int32Value:
                    return(IntegerTemplate);

                case ParserDeviceSettingValue.ValueType.StringValue:
                    return(StringTemplate);

                case ParserDeviceSettingValue.ValueType.EnumValue:
                    return(EnumTemplate);

                case ParserDeviceSettingValue.ValueType.Int16FixedValue:
                case ParserDeviceSettingValue.ValueType.FloatValue:
                    return(FloatTemplate);

                case ParserDeviceSettingValue.ValueType.UInt16Value:
                case ParserDeviceSettingValue.ValueType.UInt8Value:
                    return(IntegerTemplate);

                default:
                    return(base.SelectTemplate(item, container));
                }
            }
            else
            {
                return(base.SelectTemplate(item, container));
            }
        }