Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 绑定在没有特定DataContext的情况下不更新_C#_Silverlight_Mvvm Light - Fatal编程技术网

C# 绑定在没有特定DataContext的情况下不更新

C# 绑定在没有特定DataContext的情况下不更新,c#,silverlight,mvvm-light,C#,Silverlight,Mvvm Light,我有一个MVVM轻型视图模型,其中一个列表框绑定到一个列表。Listbox最初填充得很好,但当我在运行时更改为其他列表(不仅仅是添加项)时,它不会得到更新,除非我设置了特定的数据上下文 所以这是可行的: ... DataContext="{Binding MyViewModel, Source={StaticResource Locator}}" <ListBox ItemsSource="{Binding MyList}"/> 。。。 DataContext=“{Binding

我有一个MVVM轻型视图模型,其中一个列表框绑定到一个列表。Listbox最初填充得很好,但当我在运行时更改为其他列表(不仅仅是添加项)时,它不会得到更新,除非我设置了特定的数据上下文

所以这是可行的:

...
DataContext="{Binding MyViewModel, Source={StaticResource Locator}}"
<ListBox ItemsSource="{Binding MyList}"/>
。。。
DataContext=“{Binding MyViewModel,Source={StaticResource Locator}}”
但这并不是:

DataContext="{Binding Source={StaticResource Locator}}"
<ListBox ItemsSource="{Binding MyViewModel.MyList}"/>
DataContext=“{Binding Source={StaticResource Locator}}”
在这两种情况下,我都可以单步执行set调用来验证RaisePropertyChanged方法是否被正确调用,但在第二种情况下,关联的“get”永远不会发生

这是按设计工作,还是MVVM Light或Silverlight中的一个bug

定位器:

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>();
            }
        }
公共类ViewModelLocator
{
私有静态UnityContainer容器;
静态ViewModelLocator()
{
容器=新的UnityContainer();
RegisterType(新的ContainerControlledLifetimeManager());
}       
公共MyViewModelType MyViewModel
{
得到
{
返回Container.Resolve();
}
}

请发布定位器类和视图模型的代码片段。问题很可能存在。似乎是绑定/通知问题。MVVM Light IMHO与此无关。我已经复制了您的情况,两种绑定方案都可以正常工作。您也可以发布视图模型吗?您对单例的初始绑定看起来很正常到目前为止,问题可能出在绑定上,但我需要重新编程。