Как сохранить источник данных обновленным во всех пользовательских элементах управления WPF? - PullRequest
0 голосов
/ 07 мая 2009

У меня есть приложение WPF с одним главным окном .

В этом окне есть ряд кнопок, которые образуют меню, и пространство, в которое пользовательские элементы управления загружаются во время выполнения .

Однако, если пользователь изменяет данные (хранящиеся в файле XML) в одном пользовательском элементе управления, а затем переключается на другой пользовательский элемент управления, пользователь не видит обновленные данные в новом пользовательском элементе управления . Пользователь должен перезапустить приложение, чтобы увидеть изменения.

Вот как мой вид привязан к ModelView, который, в свою очередь, получает данные из модели (ObservableCollection):

<UserControl.Resources>
    <local:CustomersViewModel x:Key="CustomersDataProvider"/>
</UserControl.Resources>

<ListBox 
    ItemsSource="{Binding Path=GetAll, Source={StaticResource CustomersDataProvider}}" 
    ItemTemplate="{StaticResource CustomersDataTemplate}"/>

Так как же мне теперь, когда привязка данных определяется исключительно в XAML, сказать представлению, что необходимо повторно получить данные из модели представления (возможно, в конструкторе кода, стоящего за классом)?

Ответы [ 2 ]

0 голосов
/ 07 мая 2009

Возможно, проблема связана с тем, что ресурс объявлен в ресурсах вашего UserControl. Это означает, что каждый UserControl будет иметь свою собственную копию ресурса, и они не будут синхронизированы. Рассмотрите возможность использования общего ресурса.

0 голосов
/ 07 мая 2009

Вы пытались установить Mode = TwoWay на привязке?

...