没有特定DataContext的绑定不会更新

时间:2011-07-06 19:51:32

标签: c# silverlight mvvm-light

我有一个MVVM Light View模型,ListBox绑定到List<>。 Listbox最初填充得很好,但是当我在运行时更改为不同的列表(而不仅仅是添加项目)时,除非我设置了特定的数据上下文,否则它不会更新。

这样可行:

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

但这不是:

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

在这两种情况下,我都可以通过set调用来验证是否正确调用了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>();
            }
        }

0 个答案:

没有答案