2010-11-22 9 views
2

Ich habe ein WPF-Steuerelement (ControlA), die wie so ein anderes Steuerelement (ControlB) Referenzen:Wie bindet man die Eigenschaft eines Controls an ein anderes?

<Grid> 
    <controls:ControlB x:Name="ControlB" />   
    <my:DataGrid 
     x:Name="dataGridBackup" 
     ItemsSource="{Binding}" 
     AutoGenerateColumns="False" > 
     <my:DataGrid.Columns> 
      <my:DataGridCheckBoxColumn 
       Header="Connectable" 
       Binding="{Binding Connectable}" /> 
     </my:DataGrid.Columns> 
    </my:DataGrid> 
</Grid> 
in ControlB

Jetzt habe ich eine Taste, und ich will die IsEnabled Eigenschaft auf die anschließbare Spalte meiner Grid binden auf KontrolleA.

Ich kann es funktioniert, wenn ich die Steuerelemente auf der gleichen Seite haben, aber nicht im Abo Szenario. Ich habe versucht, mit

<Button 
    IsEnabled="{Binding ElementName=dataGridBackup, Path=SelectedItem.Connectable}"> 
</Button> 

Antwort

1

Knopf innen ControlB hat keine normale Art und Weise zu wissen, was ControlB außerhalb der Kontrolle. Eine mögliche Lösung ist das Hinzufügen einer booleschen Abhängigkeitseigenschaft zu ControlB wie IsConnectable. In XAML des Steuerelements ControlA, binden Sie die Eigenschaft an dataGridBackup mit Pfad, wie Sie getan haben. Schreiben Sie in XAML des Steuerelements ControlB die Eigenschaft der Schaltfläche an IsConnectable von ControlB.

Verwandte Themen