BindableBase:绑定到嵌套属性不会调用setter

时间:2013-01-22 08:58:57

标签: mvvm binding windows-runtime winrt-xaml

我有以下型号:

public class Car : BindableBase
{
    private string _model;
    private string _wheels;

    public string Model
    {
        get { return _model; }
        set { SetProperty(ref _model, value); }
    }

    public string Wheels
    {
        get { return _wheels; }
        set { SetProperty(ref _wheels, value); }
    }
}

public class Customer : BindableBase
{
    private Car _car;

    public Car Car
    {
        get { return _car; }
        set { SetProperty(ref _car, value); }
    }
}

绑定看起来像这样:

<Page.Resources>
    <viewModels:CustomerViewModelLocator x:Key="PageViewModel" />
</Page.Resources>

<StackPanel>
    <TextBox Background="AliceBlue" Text="{Binding ViewModel.Car.Model, Mode=TwoWay, Source={StaticResource PageViewModel}}"></TextBox>
    <TextBox Background="AliceBlue" Text="{Binding ViewModel.Car.Wheels, Mode=TwoWay, Source={StaticResource PageViewModel}}"></TextBox>
</StackPanel>

我在设计时视图中使用ViewModelLocator模式,看起来不错。但是在运行时我没有碰到模型的制定者。

我做错了什么?

将设置Customer模型中的普通类型...

1 个答案:

答案 0 :(得分:2)

如果Car为null,就会发生这种情况。尝试在Customer中设置_car = new Car()。