Я пытаюсь выполнить привязку данных в коде C #, а не в XAML. Привязка XAML, созданная в Expression Blend 2 к моему объекту CLR, работает нормально. Моя реализация на C # обновляется только при запуске приложения, после чего последующие изменения в CLR не обновляют содержимое моей метки.
Вот рабочая привязка XAML.
Сначала в моем Window.Resources создается ObjectDataProvider.
<ObjectDataProvider x:Key="PhoneServiceDS"
ObjectType="{x:Type kudu:PhoneService}" d:IsDataSource="True"/>
И содержание ярлыка обязательное:
<Label x:Name="DisplayName" Content="{Binding
Path=MyAccountService.Accounts[0].DisplayName, Mode=OneWay,
Source={StaticResource PhoneServiceDS}}"/>
Отлично работает. Но мы хотим, чтобы это было установлено в C #, чтобы мы могли независимо изменять XAML (т.е. новые скины). Мой одноразовый рабочий C # выглядит следующим образом:
Binding displayNameBinding = new Binding();
displayNameBinding.Source =
PhoneService.MyAccountService.Accounts[0].DisplayName;
displayNameBinding.Mode = BindingMode.OneWay;
this.DisplayName.SetBinding(Label.ContentProperty, displayNameBinding);
Это внутри моего MainWindow после InitializeComponent ();
Любое понимание, почему это работает только при запуске?