2012-07-18 35 views
8

Tôi đã tạo một usercontrol, có 2 thuộc tính phụ thuộc. Tôi muốn ràng buộc các thuộc tính phụ thuộc vào thuộc tính của mainViewModel, để bất cứ khi nào một cái gì đó được thay đổi trong điều khiển người dùng, thuộc tính của cha mẹ được cập nhật.WPF ràng buộc thuộc tính của usercontrol vào thuộc tính của cha mẹ

Tôi đã thử, liên kết bình thường nhưng không hoạt động. Làm thế nào tôi có thể liên kết DP của người dùng điều khiển với thuộc tính của cha mẹ.

Tôi cố gắng này: UC:

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

MainWindow:

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

Cảm ơn

+0

Bạn có thể vui lòng cung cấp một số ví dụ về mã, bao gồm cách bạn ràng buộc với các thuộc tính phụ thuộc. – Nathan

+0

Chỉ cần chỉnh sửa bài đăng gốc – Ali

Trả lời

18

Đối với ràng buộc để tài sản của cha mẹ bạn nên sử dụng RelativeSource trong Ràng buộc của bạn. Như thế này:

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

chi tiết: https://msdn.microsoft.com/en-us/library/ms743599(v=vs.100).aspx

ps: Đừng quên định nghĩa namespace UCName.

[EDIT] Đã thay đổi URL thành .NET 4 phiên bản tài liệu.

+0

Liên kết của bạn đã cũ. –

5

Something như thế này:

<MainWindow DataContext="mainViewModel"> 

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

</MainWindow> 


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

Việc kiểm soát người dùng không cần phải nhận thức mô hình xem cha mẹ.