Привязки не обновляются без определенного DataContext - PullRequest
1 голос
/ 06 июля 2011

У меня есть модель MVVM Light View с ListBox, привязанным к списку <>.Первоначально Listbox заполняется просто отлично, но когда я изменяю другой список во время выполнения (не просто добавляя элементы), он не обновляется, пока я не установлю конкретный контекст Data.

Так что это работает:

...
DataContext="{Binding MyViewModel, Source={StaticResource Locator}}"
<ListBox ItemsSource="{Binding MyList}"/>

Но это не так:

DataContext="{Binding Source={StaticResource Locator}}"
<ListBox ItemsSource="{Binding MyViewModel.MyList}"/>

В обоих случаях я могу пройти через установленный вызов, чтобы проверитьчто метод RaisePropertyChanged вызывается правильно, но во втором случае связанное «get» никогда не происходит.

Работает ли это как задумано или это ошибка в MVVM-Light или, возможно, Silverlight?

Локатор:

public class ViewModelLocator
    {
        private static UnityContainer Container;

        static ViewModelLocator()
        {
            Container = new UnityContainer();

            Container.RegisterType<MainViewModel>(new ContainerControlledLifetimeManager());

        }       

        public MyViewModelType MyViewModel
        {
            get
            {
                return Container.Resolve<MyViewModelType>();
            }
        }
...