Я получаю нулевой объект в модели MVVM с двусторонней привязкой silverlight

Я новичок в silverlight и пытаюсь сохранить форму в базе данных через службы RIA с использованием шаблона MVVM.

Я получаю значение текстового поля в ViewModel, когда привязываю текстовое поле к строке в режиме привязки twoway.

Но когда я привязываю Object.Property к текстовому полю (привязка Twoway), я получаю нулевой объект в ViewModel после того, как нажимаю кнопку сохранения.

Вот мой код, пожалуйста, помогите мне понять, где я ошибаюсь.

private tblSchool _school;
public tblSchool thisschool
    {
        get 
        {
            return _school;
        }

        set 
        {
            if (_school != value)
            {
                _school = value;
                OnPropertyChanged("thisschool");
            }
        }
    }

    private void SaveSchool()
    {

        DomainServiceForDatabaseData service = new DomainServiceForDatabaseData();
        service.tblSchools.Add(thisschool); //HERE I GET NULL VALUE
        service.SubmitChanges();
    }

Вот мой XAML:

<Grid x:Name="LayoutRoot"
      DataContext="{Binding Source={StaticResource SignUpViewModel}}">
    <TextBox Height="23"
             HorizontalAlignment="Right"
             Margin="0,55,160,0"
             Name="textBox1"
             VerticalAlignment="Top"
             Width="213"
             Text="{Binding Path= thisschool.School_Name, Mode=TwoWay}" />

person Muhammad Adnan    schedule 20.03.2011    source источник


Ответы (1)


Поле поддержки _school не инициализируется в вашем примере кода.

Где-то вам нужно будет сделать _school = new tblSchool (), иначе он навсегда останется нулевым.

person JoDG    schedule 20.03.2011
comment
да, брат, я знаю, как инициализировать в Си-диез. Но это модель Silverlight MVVM, где текстовое поле и свойства связаны в двухсторонней профессии, и инициализация не требуется (я думаю). - person Muhammad Adnan; 20.03.2011
comment
Вы предполагаете, что инициализация не требуется, но это действительно так. Попробуйте заменить private tblSchool _school; на private tblSchool _school = new tblSchool(); - person JoDG; 20.03.2011
comment
теперь он работает ... в основном я очень новичок в MVVM. и все это из-за рабочего сценария MVVM. - person Muhammad Adnan; 20.03.2011