Сбой одноразовой привязки элемента Silverlight UI к вложенному не зависимому свойству - PullRequest
0 голосов
/ 05 августа 2010

Мне требуется одноразовая привязка данных между флажком (IsChecked propety) в childWindow и вложенной переменной-членом в его объекте DataContext, чтобы только переменная-член initial IsChecked устанавливала только свойство.Переменная-член (источник привязки) не является INotifyPropertyChanged или помечена как DependencyProperty, но я думаю, что это нормально, потому что я хочу, чтобы она была оценена только один раз, когда она получит свое начальное значение.Привязка (в testChildWindow.xaml):

<CheckBox Content="Show Username?" Name="cbShowUser" IsChecked="{Binding Path=User.showUser}"/>

Настройка DataContext (в коде родительского окна):

  testChildWindow dlgBox = new testChildWindow();
  dlgBox.DataContext = (this.DataContext as IAssignDlgViewModel).AssignVM("defaultChildWindow");
  dlgBox.Show();

ДанныеПеременная Context / Member:

public class testChildWindowViewModel : IDlgViewUpdate 
{
  public User
  ...
}

public class User 
{
  public bool showUser;
  public User()
  {
    showUser = true;
  }
  ...
}

Если я сделаю свойство источника привязки Vm (showUser) свойством зависимости в (не вложенном) testChildWindowViewModel, то привязка будет работать.Но все другие комбинации кажутся ошибочными.

Почему это должно быть свойство зависимости (или INotifyPropertyChanged?) Для одноразовой привязки?

Почему я не могу заставить его работать навложенный уровень?

Спасибо !!!

1 Ответ

0 голосов
/ 05 августа 2010

Ах, глядя на окно вывода во время переплета, я ответил на вопрос.Проблема была в том, что Пользователь не был собственностью.Изменил его на свойство auto, и привязка работает прямо сейчас.

...