MVVM失去了命令绑定

时间:2015-03-24 23:03:12

标签: c# silverlight windows-phone-8 mvvm mvvm-light

我的视图模型有一个不寻常的问题。我有一个项目列表,我需要一个带有附加命令的按钮到每个项目。我使用ItemsSource,每个项目都用这个视图模型表示:

public class CarItemViewModel : ViewModelBase, ICarItemViewModel
    {
        public void Init(Car definition, Action<Car> onSelection)
        {
            Wehicle = definition;

            SelectCarCommand = new RelayCommand(() => onSelection(definition));
        }

        public Car Wehicle { get; private set; }

        public ICommand SelectCarCommand { get; private set; }
    }

然后在我的ViewModel for page I中调用下面的方法来填充OnNavigatedTo或Loaded事件中的列表:

public void ShowCars()
        {
            var newCar = new Car()
            {
                Make = "Mazda",
                Model = "MX-5"
            };

            var carVM = new CarItemViewModel();
            carVM.Init(newCar, SelectCar);
            Cars.Add(carVM);
        }

数据绑定工作正常。我可以看到名称等,但带有绑定命令的按钮有时是无效的,它不会在SelectCar方法中遇到断点。当我做一个小技巧并在调用ShowCars()之前,我添加Task.Delay(200)就可以了。

我正在为Windows Phone 8 Silverlight开发并使用最新的MVVM Light。有人有类似的问题吗?

0 个答案:

没有答案