Мой мозг застрял, пытаясь решить проблему, с которой я столкнулся, и некоторая помощь будет иметь большое значение.
У меня есть приложение, которое загружает структуру данных из службы WCF, и данные хранятся в наблюдаемом свойстве совокупности. У меня есть пользовательский элемент управления, который содержит сетку и связан либо с инициализатором пользовательского элемента управления, либо с помощью привязки данных x:Static
. Пользовательский элемент управления или наблюдаемое свойство коллекции могут быть доступны на одной и той же машине более одного раза.
Если у меня несколько экземпляров пользовательского элемента управления, открытых и изменяющих запись с использованием сетки, я отправляю изменение в службу WCF, которая изменяет базу данных SQL, добавляет несколько бит к измененному объекту и передает ее обратно в WPF ( возможно, в будущем для других клиентских приложений через postbacks) приложение и обновления сетки. Однако он обновляет только одну конкретную сетку пользовательских контролей.
Если я заставлю другой пользовательский элемент управления сетку перепривязывать, то отражается изменение данных, а это не то, что я хочу. Поэтому я решил использовать LINQ, чтобы найти объект, подлежащий изменению в наблюдаемой коллекции, добавить, затем вставить объект в коллекцию, используя IList.IndexOf
, на место, где он находился в коллекции, и удалить старый объект. Кажется, что этот метод работает нормально, но я читал, что есть лучший способ добиться этого.
Может ли кто-нибудь помочь пролить некоторый свет на то, что я пытаюсь достичь, или это способ, которым я достиг, уведомив все связанные сетки, что изменение сделано правильно / только делая это, все мои свойства реализуют inotifypropertyolated на их значениях.
Заранее спасибо