Я продолжал получать ошибку, когда добавлял каскадные comboboxes в свое приложение WPF и разрешал ошибку с помощью этого API:
using System.Windows.Data;
private readonly object _lock = new object();
private CustomObservableCollection _myUiBoundProperty;
public CustomObservableCollection MyUiBoundProperty
{
get { return _myUiBoundProperty; }
set
{
if (value == _myUiBoundProperty) return;
_myUiBoundProperty = value;
NotifyPropertyChanged(nameof(MyUiBoundProperty));
}
}
public MyViewModelCtor(INavigationService navigationService)
{
// Other code...
BindingOperations.EnableCollectionSynchronization(AvailableDefectSubCategories, _lock );
}
Если бы работы libhid для Вас, то, возможно, нужно должен был бы записать приложение (который Вы будете GPL), который использует libhid, чтобы говорить с устройствами, то обеспечивает то, в чем Вы нуждаетесь через соединение TCP. Ваше реальное приложение соединилось бы через TCP, чтобы сделать то, в чем это нуждается. Это, очевидно, было бы крупным хитом производительности.
Это приложение эффективно было бы 'контейнером' между libhid и Вашим приложением. В этом случае контейнер существовал бы для легального, не технических причин.
я не говорю, что это - хорошая идея, просто что это - идея.
Программный пакет HIDmaker от систем Трассировки является опцией.
Профессионалы: - простой в использовании (Excelent для изучения, как программировать для USB HID) - Генерирует рабочий исходный код приложений в, различные форматы проекта (Visual Studio, Borland) - Генерирует стабильный пример кода и для хоста и для устройства (стабильный, по моему опыту) - Высокая производительность (если HID, как могут даже говорить, имеет высокую производительность во-первых)
Недостатки: - только работает над Microsoft Windows - Пользуется своей собственной библиотекой USB, я думаю (ActiveX)
Рассмотрите прокрутку Вашего собственного. Вы будете иметь полный контроль над интерфейсом, уровнем независимости от платформы и такого. Даже при том, что проект является GPL, можно использовать его в качестве рецепта для собственного, и как испытательный стенд для нахождения проблем с собственным.
Взгляд на этот код:
http://geekswithblogs.net/tamir/archive/2008/12/30/read-and-use-fm-radio-or-any-other-usb-hid.aspx
Это дает Вам некоторые простые классы, чтобы говорить с устройством HID. То, к чему это сводится, получите псевдоним для устройства (что-то как \? \HID#Vid_nnnn& Pid_nnn#.......) и использование CreateFile для открытия его. Можно получить псевдоним устройства под HKML\SYSTEM\CCS\Control\DeviceClasses {4d1e55... }\\
Vid и Pid являются идентификатором поставщика, и идентификатор продукта устройства (проверьте Диспетчер устройств).