Привязка к ViewModel.SubClass.Property (подчиненное свойство)

скажем, у меня на экране есть раздел, в котором "текущая запись" отредактировано .. так что моя модель представления имеет класс со всеми редактируемыми в данный момент свойствами, такими как:

class Record { 
    public string Notes { get { return "Foo"; } set { _notes = value; Notify("Notes"); }
}

и мы добавим этот класс в модель представления:

class AdjustsmentViewModel {
    public Record CurrentRecord { get { return new Record(); }}
}

Как я могу привязать к Notes свойство CurrentRecord на мой взгляд? Я попробовал это:

<TextBox Text="{Binding CurrentRecord.Notes, Mode=TwoWay}" VerticalScrollBarVisibility="Auto" TextWrapping="WrapWithOverflow" AcceptsReturn="True"  />

Это не работает, однако. Я также попытался установить DataContext окружающего StackPanel:

<StackPanel DataContext="{Binding CurrentRecord}">

После этого я попытался в моих TextBox {Binding Notes} и {Binding Path = Notes}, но ни один из них, похоже, не работает.

Возможно, выше действительно должно работать, и я что-то напортачу?

Update

Это происходит в пользовательском элементе управления. Этот пользовательский элемент управления имеет отдельную модель представления из родительского окна.

this.DataContext = UnityUtil.Resolve<AdjustmentsViewModel>();

Также я вижу ошибку привязки:'Notes' property not found on 'object' ''MainViewModel'

та модель представления установлена в главном окне.

чтобы убедиться, что у меня есть правильная привязка ViewModel, я просто добавил это свойство непосредственно в viewmodel:

public string Notes2 { get { return "Bar"; } } 

и соответствующий текстовый блок в виде:

<TextBlock Text="{Binding Path=Notes2}" />

это работает как ожидалось.

Great Success

Благодаря Райану я смог найти проблему. Это было не в самом свойстве, а в том, как был установлен CurrentRecord. В моем установщике я вызываю обработчик INotifyPropertyChange, но в нем было старое имя свойства. Таким образом, представление не получало уведомление CurrentRecord, поэтому я думаю, что уведомления Notes было недостаточно.

В заключение, это обозначение является правильным:{Binding Path=CurrentRecord.Notes}

Ответы на вопрос(2)

Ваш ответ на вопрос