2009-07-29 18 views
9

コントロールの参照を別のカスタムコントロールに渡す必要があります。 私はここでは、このコントロールの参照をXAMLの別のコントロールに渡す方法

<Datagrid x:name=ClientGrid /> 

のような値を代入していますXAMLでassociateDatagridProperty

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); } 
    } 

依存関係プロパティが含まれているカスタムコントロールを作成したデータグリッドが

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

マイクロソフトWPFツールキットのデータグリッドでありますAssociatedDatagridプロパティの値にアクセスしようとすると常に表示されるnull

誰も私にそれを行う正しい方法を教えてもらえますか?

答えて

1

BindingPath=Nameは必要ありません。ここで何をするのかは、DataGridNameプロパティの値を渡すことです。ここで

+0

別の回答を投稿するのではなく(私が同意しているので)、まだ混乱がある場合に備えてここにメモを追加します。主に、舞台裏では、Bindingは以下を実行しようとしています。 AssociatedDatagrid =(DatagridとしてのclientsGrid.Name); はnullになります。 –

+0

私はこれに同意します、+1。 –

14

コードです:秒1で参照されます

最初の要素:

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

第二の要素:

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

幸運を!

+1

jmixに感謝します。私は完璧な答えを得ました。 – Gate

関連する問題