У меня есть следующий сценарий (я использую Silverlight4 Beta):
UserControl A: -> DataContext - это объект класса MyModel, который содержит свойства Property01 (CustomClass), Property02 (CustomEnum).Класс MyModel реализует INotifyPropertyChanged, и все свойства вызывают событие PropertyChanged всякий раз, когда они могут изменяться.
UserControl B: -> DataContext должен быть объектом типа (CustomClass) -> DependencyProperty MyProperty типа (CustomEnum)
My UserControlA будет содержать UserControlB, и я хотел бы связать свойства следующим образом (из XAML):
-> UserControlB.DataContext = UserControlA.DataContext.Property01
-> UserControlB.MyProperty = UserControlA.DataContext.Property02
<!-- DataContext = MyModel -->
<Grid x:Name="LayoutRoot">
<foo:UserControlB x:Name="xpto" DataContext="{Binding Property01}" MyProperty="{Binding Property02}" />
</Grid>
Придумывание вещей, как описано выше, устанавливает для DataContext UserControlB правильное значение, однако привязка к UserControlB.MyProperty никогда не происходит.Если я удалю оператор DataContext = "{Binding Property01}", тогда произойдет привязка UserControlB.MyProperty.
Может кто-нибудь объяснить, если я делаю что-то, что повторяет универсальные законы Silverlight: -)
Большое спасибо заранее, Бруно