2012-07-18 9 views
8

2 bağımlılık özelliğine sahip bir usercontrol oluşturdum. Bu bağımlılık özelliklerini mainViewModel'in özelliğine bağlamak istiyorum, böylece kullanıcı denetiminde bir şey değiştiğinde, ebeveynin mülkü güncellenir.WPF usercontrol'ın özelliğini parent's özelliğine bağlama

Normalde bağlamayı denedim ama işe yaramadı. Kullanıcı kontrolünün DP'sini ebeveynin mülküne nasıl bağlarım? UC:

Bu çalıştı

<TextBox Name="TextBox" Text="{Binding ElementName=UCName, Path=DP1, Mode=TwoWay}"/> 

MainWindow:

<UCName:UCName Width="330" CredentialName="{Binding Path=DP1, Mode=TwoWay}"></UCName:UCName> 

sayesinde ebeveynin özelliklerini Eğer senin Bağlama içinde RelativeSource kullanmalıdır bağlanma için

+0

Bağımlılık özelliklerine nasıl bağlandığınız da dahil olmak üzere bazı kod örnekleri verebilir misiniz? – Nathan

+0

Sadece orijinal yazıyı düzenledim – Ali

cevap

18

.

<TextBox Name="TextBox" Text="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UCName:UCName}}, Path=DP1, Mode=TwoWay}"/> 

Detayları: https://msdn.microsoft.com/en-us/library/ms743599(v=vs.100).aspx

ps: Bunun gibi ad UCName tanımlamak unutmayın.

[EDIT] URL, .NET 4 sürüm belgelerine değiştirildi. Böyle

+0

Linkiniz boşaldı. –

5

şey:

<MainWindow DataContext="mainViewModel"> 

<local:TestControl ucDependProp="{Binding viewModelProp}/> 

</MainWindow> 


className: TestControl.xaml 
<UserControl Name="thisControl"> 
<TextBox Text="{Binding ElementName=thisControl, Path=ucDependProp}/> 
</UserControl> 

kullanıcı kontrolü ebeveyn görünümü modelinin farkında olmamalıdır.