2013-07-12 24 views
15

Tôi có quyền truy cập vào Điều khiển người dùng A. Tôi muốn nhận thông tin về Kiểm soát người dùng C. Có cách nào để thực hiện điều này trong WPF không? Cấu trúc cơ bản là những gì bạn thấy. User Control D là một ribbon, C là một tab trên ribbon và B và A là nội dung của C. Tôi dường như không thể truy cập vào C. Tôi đã thử sử dụng thuộc tính Gốc của A nhưng dường như nó không cho tôi các thông tin trên C.Lấy tên của điều khiển người dùng cha mẹ WPF C#

enter image description here

+0

Tài sản 'cha mẹ 'cung cấp cho bạn thay thế? –

+0

Tôi nghĩ nó cung cấp cho cửa sổ hoặc một số yếu tố tối nghĩa khác. Chương trình là phức tạp ridiculously. –

+0

Bạn đang sử dụng MVVM? Nếu không, tôi khuyên bạn nên sử dụng phương pháp này. Bằng cách này, bạn có thể truy cập vào logic cơ bản (Xem mô hình) dưới neath mà không cần cố gắng để nhảy qua các điều khiển trực tiếp. – tsells

Trả lời

13

Hãy thử sử dụng VisualTreeHelper.GetParent hoặc sử dụng chức năng đệ quy here

+0

Tuyệt vời tôi sẽ thử vào thứ hai. Cảm ơn –

+0

Điều này làm việc tuy nhiên nó quay ra câu hỏi này không giải quyết được vấn đề của tôi. Dấu kiểm và +1 cho câu trả lời đúng mặc dù! Cảm ơn –

1

có lẽ bạn có thể thử để cast phụ huynh như UserControl C, như thế này:

(this.Parent as UserControlC).YourProperty 
-1

sử dụng phương thức Window.GetWindow (this) trong trình xử lý sự kiện được tải.

public MainView() 
{ 
    InitializeComponent(); 

    this.Loaded += new RoutedEventHandler(MainView_Loaded); 
} 

void MainView_Loaded(object sender, RoutedEventArgs e) 
{ 
    Window parentWindow = Window.GetWindow(this); 

    ... 
}