У меня есть модель 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>();
}
}