2009-07-29 28 views
9

Tôi có yêu cầu chuyển tham chiếu điều khiển đến một điều khiển tùy chỉnh khác. tôi đã tạo một điều khiển tùy chỉnh, trong đó có một tài sản associateDatagridPropertyCách chuyển tham chiếu điều khiển tới điều khiển khác trong XAML

public static readonly DependencyProperty 
     AssociatedDataGridProperty = DependencyProperty.Register(
      "AssociatedDatagrid", 
      typeof(DataGrid), 
      typeof(CustomControl), 
      new FrameworkPropertyMetadata(null, 
       FrameworkPropertyMetadataOptions.BindsTwoWayByDefault) 
      ); 

    public Datagrid AssociatedDatagrid 
    { 
     get { return (Datagrid)base.GetValue(AssociatedDataGridProperty); } 
     set { base.SetValue(AssociatedDataGridProperty, value); } 
    } 

phụ thuộc Trong XAML Tôi gán giá trị gia tăng như thế này

<Datagrid x:name=ClientGrid /> 

Đây DataGrid là Microsoft WPF toolkit DataGrid

<CustomControl x:Name="DatagridPaging" 
       Canvas.Left="24"  
       Canvas.Top="236" 
       AssociatedDatagrid="{Binding ElementName=clientsGrid ,Path=Name}"> 

Khi tôi cố truy cập giá trị của thuộc tính AssociatedDatagrid, nó luôn hiển thị null

Có ai có thể cho tôi biết cách làm đúng không?

Trả lời

1

Bạn không cần Path=Name trong Binding. Thay vào đó, những gì bạn thực hiện ở đây là chuyển giá trị của thuộc tính Name của số DataGrid.

+0

Thay vì đăng câu trả lời khác (vì tôi đồng ý), tôi sẽ chỉ thêm ghi chú ở đây, trong trường hợp vẫn còn nhầm lẫn. Chủ yếu, đằng sau hậu trường, các ràng buộc đang cố gắng làm như sau: AssociatedDatagrid = (clientsGrid.Name như Datagrid); sẽ bị vô hiệu. –

+0

Tôi đồng ý với điều này, +1. –

14

Đây là mã:

Thành tố thứ nhất sẽ được tham chiếu trong một giây:

<Label x:Name="aGivenNameLabel" Content="kikou lol"/> 

Yếu tố thứ hai:

<ContentControl Content={Binding ElementName=aGivenNameLabel}" /> 

Chúc may mắn!

+1

cảm ơn jmix, tôi đã nhận được câu trả lời hoàn hảo, những gì tôi muốn. – Gate

Các vấn đề liên quan